mybatis的query动态SQL实现

   2024-10-01 5140
核心提示:MyBatis中的动态SQL可以通过if、choose、when、otherwise、trim、where、set、foreach等标签实现。以下是一些常用的动态SQL

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

使用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>
使用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>
使用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>
使用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。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号