我就废话不多说了,大家还是直接看代码吧~
1
2
3
4
5
6
7
|
< select id = "findActiveBlogLike" resultType = "Blog" > SELECT * FROM BLOG WHERE < if test = "state != null" > state = #{state} </ if > </ select > |
如果state参数为空时,最终生成SQL语句为
SELECT * FROM BLOG
WHERE
执行会出错,当然,你可以在where 后加一个1=1,改成
1
2
3
4
5
6
7
|
< select id = "findActiveBlogLike" resultType = "Blog" > SELECT * FROM BLOG WHERE 1=1 < if test = "state != null" > and state = #{state} </ if > </ select > |
但是这个做法不太“环保”(毕竟引入了一个垃圾条件),其实只要改成<where>...</where>即可
1
2
3
4
5
6
7
8
|
< select id = "findActiveBlogLike" resultType = "Blog" > SELECT * FROM BLOG < where > < if test = "state != null" > and state = #{state} </ if > </ where > </ select > |