mybatis中sql語句引數新增判斷
在使用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>