MyBatis详解-----动态SQL的介绍及使用详解

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

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值