1.Mybatis动态SQL
常用标签
<if>
标签:<if>
标签用于条件判断,在满足条件时将生成的SQL语句包含在 <if>
和 </if>
标签之间。
<select id="getUserList" parameterType="Map" resultType="User">
SELECT * FROM user
WHERE 1=1
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</select><choose>
标签类似于 switch-case 语句,用于实现多个条件选择。
<when>
标签用于指定每个条件的判断逻辑
<otherwise>
标签用于指定默认情况下的逻辑。
<select id="getUserList" parameterType="Map" resultType="User">
SELECT * FROM user
WHERE 1=1
<choose>
<when test="name != null">
AND name = #{name}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND status = 'active'
</otherwise>
</choose>
</select>
<foreach>
标签:<foreach>
标签用于循环遍历集合或数组,生成多次重复的SQL片段。可以指定循环变量、集合或数组参数以及循环体中的SQL语句。
<update id="updateUserList" parameterType="List">
UPDATE user
SET status = 'inactive'
WHERE id IN
<foreach collection="list" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</update>
2.使用动态SQL实现批量新增和输出
先写一个实体类
在写一个Mapper接口
接着在Mapper映射文件里面写方法
最后在测试类运行