其他分享
首页 > 其他分享> > 巧妙mybatis避免Where 空条件的尴尬

巧妙mybatis避免Where 空条件的尴尬

作者:互联网

我就废话不多说了,大家还是直接看代码吧~

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>

标签:Blog,巧妙,BLOG,state,SELECT,mybatis,null,Where,select
来源: https://www.cnblogs.com/roak/p/14892378.html