Mybatis-动态SQL

if:

@Test
    public void testList(){
        List<Emp> empList = empMapper.list("张", null, null, null);
        System.out.println(empList);
    }
点击查看代码

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.EmpMapper">
  <select id="list" resultType="com.pojo.Emp">
    select *
    from emp
    where
        <if test="name != null">
     name like concat('%', #{name}, '%')
        </if>
        <if test="gender != null">
     and gender = #{gender}
        </if>
       <if test="begin != null and end != null">
     and entrydate between #{begin} and #{end}
       </if>
    order by update_time desc;
  </select>
</mapper>
若值为null就不输出 ![](https://img2024.cnblogs.com/blog/3619156/202503/3619156-20250317234040803-560947402.png) ![](https://img2024.cnblogs.com/blog/3619156/202503/3619156-20250317234216569-1782262827.png)

foreach

点击查看代码
<delete id="deleteByIds">
        delete from emp where id in
#         collection 集合的名字
#         item 集合中每一个元素的名字
#         separator 分割符
#         open 开始符
#         close 结束符
        <foreach collection="ids" item="id" separator="," open="(" close=")">
            #{id}
        </foreach>
    </delete>
@Test
    public void testDeleteByIds(){
        List<Integer> ids = Arrays.asList(13, 14, 15);
        empMapper.deleteByIds(ids);
    }

sql,include

<sql id="commomSelect">
        select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time
        from emp
    </sql>

<include refid="commomSelect"/>插入代码

posted @ 2025-03-18 00:04  mooncage  阅读(15)  评论(0)    收藏  举报