框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二
本节主要内容
1:动态sql使用(trim标签、sql片段的使用)
2:总结&下节预告
本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中框架学习系列 mybatis 第十五篇 mybatis动态sql及常用标签二
声明:本文系凯哥Java(www.kaigejava.com)原创,未经允许,禁止转载!
回顾:
在上一篇《框架学习系列 mybatis 第十四篇 mybatis动态sql及常用标签二》中我们知道什么是动态sql,也学会了常用的标签:where、if、set标签的使用。那么在本篇中,我们将继续学习剩下的标签
一:动态sql使用(trim标签、sql片段的使用)
1.1:trim标签
trim标签干嘛用?
trim标签是一个格式的标记(说的啥啊?不懂),
换句话来说:主要就是在自己包含的前面可以加些某些前缀,或者是在自己的后面加上某些后缀(依然一脸蒙比中~)
简单理解:trim标签有点类似于string类型中的replace的效果(或者可以理解为这货可以实现where和set同样的效果)
trim的属性有:
prefix:前缀覆盖并增加对应内容
suffix:后缀覆盖并追加其内容
prefixOverrides:前缀判断的条件
suffixOverrides:后缀判断的条件
1.2:使用案例
需求:同样查询条件有用户名、性别,查询对应的用户集合。
各位看官,咱先上大图
在Mapper-User.xml中:
说明:
<trim>:声明开始使用trim标签
</trim>:trim标签结束
prefix:前缀。也就是在之前添加追加什么
prefixOverides:前缀添加的判断条件。
concat:这个是mysql的连接函数,可以理解为加号在java中字符串连接的作用
上面sql语句其实就等同于上节课(《框架学习系列 mybatis 第十四篇 mybatis动态sql及常用标签一》)
中讲解的where if 标签的使用。
where if标签使用如下:
trim if 相当于where if 标签使用测试类:
执行的结果:
1.3:trim if相当于 set if 的使用(各位看官,自己可以练习练习)
1.4:sql片段的使用
1.4.1:sql片段是什么?使用sql片段有什么好处?
sql片段,就是预先定义后的一些sql语句。等其他sql需要的时候直接拿来用。
sql片段可以提高代码的可重用性
1.4.2:sql片段的使用
1.4.2.1:定义sql片段
在上面查询语句中我们可以将if 标签的sql语句提取出来。
在Mapper-User.xml中:
先定义sql片段
说明:
sql:声明sql片段开始
id:该sql片段唯一标识符。在当前的xml中是唯一的。
注:因为sql片段是公共的,所以最好不要将关键字带入。
比如:最好不要讲where、select等关键字声明在内
使用sql片段:
说明:
include:指明开始引用外部的
refid:注入需要引用的id.这个id必须是已经存在(已经声明的)
测试类:
运行结果:
同样是查询到两条数据。说明执行没问题。
二:总结
通过本文学习,我们必须掌握的
1:sql片段的使用。这个在以后公司开发中也常用
了解的:
1:trime if 标签可以替换 where if或者是set if 不过一般很少使用
下节预告:
在下节课中,我们将学习到另外很有用的标签:foreach标签。这个标签可以处理list循环。同时我们还会讲解mybaits和hibernate的区别。欢迎大家学习下一篇《框架学习系列 mybatis 第十五篇 mybatis 常用标签三及与hibernate的比较》