mybatis where标签的使用
where后面跟查询条件 简化sql语句中判断条件的书写
例:
MyBatis会智能的把首个and 或 or 给忽略
如果id为null 执行的sql语句为 :
select * from user where name='xxx' and gender='xxx'
mybatis set标签的使用
例:
update user
id=#{id},
name=#{name},
gender=#{gender},
如上片段假如都不为null的情况下执行SQL为: update user set id="xx",name='xxx',gender='xxx';
在如上sql中最后一个逗号会被set标记自动忽略不计
mybatis trim标签的使用
trim 属性
prefix:前缀
suffix:后缀
prefixOverrides:忽略第一个指定分隔符
suffixOverrides:会略最后一个分隔符
例:
1)
如果id为null执行的sql语句为:
select * from user where name="xxx" and gender="xxx"
2)
update user
id=#{id},
name=#{name},
gender=#{gender}
如果gender为null 执行的sql语句为:
update user set id="xx",name="xx"
mybatis foreach标签的使用
可以利用
mybatis接受的参数分为:
(1)基本类型(2)对象(3)List(4)数组(5)Map
参数:
collection:要循环的集合
index:定一个名字,用于表示在迭代过程中,每次迭代到的位置
item:集合中每一个元素进行迭代时的别名
open:以什么开始
close:以什么结束
separator:循环内容之间以什么分隔
例:
1)批量添加
insert into user(id,name,gender) values
#{user.id},#{user.name},#{user.gender}
若list有两条数据 则执行的sql语句为:
insert into user(id,name,gender) values ("1","张三","男"),("2","李四","女")
mapper接口:
void add(List
2)批量删除
delete from user where id in
#{id}
如果有两条数据要删除 执行的sql语句为:
delete from user where id in(1,2)
mybatis sql标签的使用
通过sql片段达到代码重复利用
例:
select count(*)
select *
from user