在使用mybatis框架,在xml文件写sql语句时,我们经常会添加一些参数输入的判断条件,
一是为了控制非法参数传入导致程序报错,二是可根据不同参数传入实现sql语句的复用。
简单总结如下:
查询语句:
判断参数不为空
select * from table1 where 1=1
<if test="condition != null">
and table1.colum1 = #{condition}
</if>
判断参数不为空字符串
select * from table1 where 1=1
<if test='condition != "" '>
and table1.colum1 = #{condition}
</if>
更新语句:
update table2
<set>
<if test="condition1 != null">
table2.colum1 = #{condition1},
</if>
<if test="condition2 != null">
table2.colum2 = #{condition2}
</if>
</set>
插入语句:
下面这个示例是一个循环插入语句,需要插入的数据在java层已经封装成对象(object)放入到集合(list)中
insert into table3 (colum1, colum2, colum3)
values
<if test="list != null">
<foreach collection="list" item="object" index="index" separator=",">
(
#{object.field1},
#{object.field2},
#{object.field3}
)
</foreach>
</if>