当前位置:Gxlcms > 数据库问题 > mybatis中sql标签、where标签、foreach标签用法

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

时间:2021-07-01 10:21:17 帮助过:14人阅读

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>
 1 <select id="findUserList" parameterType="userQueryVo" resultType="user">
 2             select id,username,birthday from user
 3     <!-- where标签相当 于where关键字,可以自动去除第一个and -->
 4     <where>
 5         <!-- 引用sql片段,如果sql片段和引用处不在同一个mapper必须前边加namespace -->
 6         <include refid="query_user_where"></include>
 7         <!-- 下边还有很其它的条件 -->
 8         <!-- <include refid="其它的sql片段"></include> -->
 9     </where>
10 </select>

 

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

标签:list   space   class   day   用法   效果   collect   include   cti   

人气教程排行