MyBatis的强大特性之一就是动态sql,使用JDBC的时候或者时在用其他类似的框架的时候,我们根据不同的需求进行拼接SQL的时候都是非常严格的,不仅要注意一些必要的空格,还有注意在sql中的一些逗号的使用。而MyBatis的动态SQL就帮我们解决了这些麻烦。
动态SQL__if的用法
<if>
标签内的
Sql
片段在满足条件后才会添加,用法为:
<if test="条件">
。
作用
:当满足test属性中的条件的时候if中的sql语句会追加在原有的sql语句后面,如果条件不满足则不会添加。
注意:
- if中的条件不能使用&&/||,而应该使用and/or
-
if 中的条件可以直接通过属性名获取参数 POJO的属性值,并且该值可以调用方法。
-
where 后为什么要加 1=1 ?任意条件都可能拼接到 Sql中。如果有多个条件,从第二个 条件开始前都需要加 And 关键字。加上1=1这个永久成立的 条件,就不需要考虑后面的条件哪个是第一个条件,后面的 条件前都加 And 关键字即可。
例如:根据不同条件查询用户:
<!--动态sql if的使用-->
<select id="findByCondition" parameterType="com.xjx.pojo.Users" resultType="com.xjx.pojo.Users" >
select * from user where 1 = 1
<if test="username != null and user

本文详细介绍了MyBatis的动态SQL功能,包括`if`标签的使用,注意点如避免使用&&/||,而应使用and/or,并解释了`where`后添加1=1的原因。还探讨了`<where>`标签如何处理多个条件的拼接,以及`<foreach>`标签的遍历功能,用于循环构建SQL语句。示例展示了动态SQL在不同场景下的应用。
最低0.47元/天 解锁文章
6755

被折叠的 条评论
为什么被折叠?



