mybatis中sql标签、where标签、foreach标签用法

<sql id="query_user_where">
 			<!-- 如果 userQueryVo中传入查询条件,再进行sql拼接-->
			<!-- test中userCustom.username表示从userQueryVo读取属性值-->
			<if test="userCustom!=null">
				<if test="userCustom.username!=null and userCustom.username!=''">
					and username like '%${userCustom.username}%'
				</if>
				<if test="userCustom.sex!=null and userCustom.sex!=''">
					and sex = #{userCustom.sex}
				</if>
				<!-- 根据id集合查询用户信息 -->
				<!-- 最终拼接的效果:
				SELECT id ,username ,birthday  FROM USER WHERE username LIKE '%小明%' AND id IN (16,22,25)
				collection:集合的属性
				open:开始循环拼接的串
				close:结束循环拼接的串
				item:每次循环取到的对象
				separator:每两次循环中间拼接的串
				 -->
				 <foreach collection="ids" open=" AND id IN ( " close=")" item="id" separator=",">
				 	#{id}
				 </foreach>
				 <!-- 
				 SELECT id ,username ,birthday  FROM USER WHERE username LIKE '%小明%' AND (id = 16 OR id = 22 OR id = 25) 
				  <foreach collection="ids" open=" AND ( " close=")" item="id" separator="OR">
				 	id = #{id}
				 </foreach>
				  -->
				<!-- 还有很的查询条件 -->
			</if>
 	</sql>
	</span><select id="findUserList" parameterType="userQueryVo" resultType="user">
            select id,username,birthday from user
       <!-- where标签相当 于where关键字,可以自动去除第一个and -->
       <where>
       <!-- 引用sql片段,如果sql片段和引用处不在同一个mapper必须前边加namespace -->
         <include refid="query_user_where"></include>
           <!-- 下边还有很其它的条件 -->
           <!-- <include refid="其它的sql片段"></include> -->
            </where>
           </select>
  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值