mybatis的query动态SQL实现

avatar
作者
筋斗云
阅读量:0

MyBatis中的动态SQL可以通过ifchoosewhenotherwisetrimwheresetforeach等标签实现。以下是一些常用的动态SQL示例:

  1. 使用if标签实现条件判断:
<select id="findUser" parameterType="map" resultType="User">     SELECT * FROM user     <where>         <if test="id != null">             AND id = #{id}         </if>         <if test="name != null">             AND name = #{name}         </if>     </where> </select> 
  1. 使用trim标签处理SQL语句中的多余的AND或OR:
<select id="findUser" parameterType="map" resultType="User">     SELECT * FROM user     <where>         <trim prefix="AND" prefixOverrides="AND">             <if test="id != null">                 id = #{id}             </if>             <if test="name != null">                 AND name = #{name}             </if>         </trim>     </where> </select> 
  1. 使用choosewhenotherwise标签实现条件选择:
<select id="findUser" parameterType="map" resultType="User">     SELECT * FROM user     <where>         <choose>             <when test="id != null">                 AND id = #{id}             </when>             <when test="name != null">                 AND name = #{name}             </when>             <otherwise>                 AND status = 1             </otherwise>         </choose>     </where> </select> 
  1. 使用foreach标签处理集合参数的循环:
<select id="findUserByIds" parameterType="list" resultType="User">     SELECT * FROM user     WHERE id IN     <foreach collection="ids" item="id" open="(" separator="," close=")">         #{id}     </foreach> </select> 

通过以上示例,可以根据不同的条件动态拼接SQL语句,实现灵活的查询操作。在实际开发中,可以根据具体需求结合不同的标签来编写动态SQL。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!