mybatis的动态sql的基本使用

本文详细介绍了MyBatis框架中动态SQL的三种主要用法:<if>、<where>和<trim>标签的使用技巧及注意事项。通过这些标签可以有效地构建复杂的查询语句,并确保SQL语法的正确性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.<if>句子的使用

如:<if test="nickName!=null">
  and nick_name=#{nickName}
  </if>

其中:test中写Boolean表达式 如果条件成立这执行句中的sql  

2.<where>句子的使用

<where>
  <if test="nickName!=null">
  and nick_name=#{nickName}
  </if>
  </where>

其中:if条件不满足则不执行where语句  如果条件满足则执行where语句 :where nick_name=?

3.<trim>句子的使用

<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>

prefix:在trim标签内sql语句加上前缀。
suffix:在trim标签内sql语句加上后缀。
suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides="and",去除trim标签内sql语句多余的后缀"and"。
prefixOverrides:指定去除多余的前缀内容
如:

<trim prefix="(" suffix=")" prefixOverrides="and" >
            <foreach collection="criteria.criteria" item="criterion" >
              <choose >
                <when test="criterion.noValue" >
                  and ${criterion.condition}
                </when>
                <when test="criterion.singleValue" >
                  and ${criterion.condition} #{criterion.value}
                </when>
                <when test="criterion.betweenValue" >
                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
                </when>
                <when test="criterion.listValue" >
                  and ${criterion.condition}
                  <foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
                    #{listItem}
                  </foreach>
                </when>
              </choose>
            </foreach>
          </trim>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值