mybatis中动态sql语句都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis中动态sql语句都有哪些相关的知识,希望对你有一定的参考价值。

mybatis的动态sql是基于ognl表达式的,它可以帮助我们方便的在sql语句中实现某些逻辑。
mybatis中用于实现动态sql的元素主要有:
if
choose(when,otherwise)
trim
where
set
foreach
http://www.open-open.com/lib/view/open1326100765125.html
详细可以参考这个,有图解教程,希望可以帮到你
参考技术A 最佳答案
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑。
MyBatis中用于实现动态SQL的元素主要有:
if
choose(when,otherwise)
trim
where
set
foreach

Mybatis总结

1. 输入映射(就是映射文件中可以传入哪些参数类型)
1)基本类型
2)pojo类型
3)Vo类型
2. 输出映射(返回的结果集可以有哪些类型)
1)基本类型
2)pojo类型
3)List类型
3. 动态sql:动态的拼接sql语句,因为sql中where条件有可能多也有可能少
1)where:可以自动添加where关键字,还可以去掉第一个条件的and关键字
2)if:判断传入的参数是否为空
3)foreach:循环遍历传入的集合参数
4)sql:封装查询条件,以达到重用的目的

4. 对单个对象的映射关系:
1)自动关联(偷懒的办法):可以自定义一个大而全的pojo类,然后自动映射其实是根据数据库总的字段名称和
pojo中的属性名称对应.
2)手动关联: 需要指定数据库中表的字段名称和java的pojo类中的属性名称的对应关系.
使用association标签
5. 对集合对象的映射关系
只能使用手动映射:指定表中字段名称和pojo中属性名称的对应关系
使用collection标签
6. spring和mybatis整合
整合后会话工厂都归spring管理
1)原生Dao实现:
需要在spring配置文件中指定dao实现类
dao实现类需要继承SqlSessionDaoSupport超类
在dao实现类中不要手动关闭会话,不要自己提交事务.
2)Mapper接口代理实现:
在spring配置文件中可以使用包扫描的方式,一次性的将所有mapper加载

7. 逆向工程:自动生成Pojo类,还可以自动生成Mapper接口和映射文件
注意:生成的方式是追加而不是覆盖,所以不可以重复生成,重复生成的文件有问题.
如果想重复生成将原来生成的文件删除































以上是关于mybatis中动态sql语句都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis 源码分析——动态SQL语句

MyBatis:动态sql语句

mybatis--MyBatis动态SQL语句

MyBatis动态SQL和缓存

Mybatis超强大的动态SQL大全

mybatis 动态SQL .2