MyBatis操作-SQL动态更新

103 阅读1分钟

实体类Emp

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {
    private Integer id;
    private String username;
    private String password;
    private String name;
    private Short gender;
    private String image;
    private Short job;
    private LocalDate entrydate;
    private Integer deptId;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

映射接口EmpMapper

public interface EmpMapper {
    public void update2(Emp emp);
}

Xml配置文件文件EmpMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.springboot.mapper.EmpMapper">
    <update id="update2">
        <!--        动态更新员工信息的操作-->
        update emp
        <set>
            <if test="username != null">username = #{username},</if>
            <if test="name != null">name =#{name},</if>
            <if test="gender != null">gender = #{gender},</if>
            <if test="image != null">image = #{image},</if>
            <if test="job != null">job =#{job},</if>
            <if test="entrydate !=null">entrydate = #{entrydate},</if>
            <if test="deptId != null">dept_id=#{deptId},</if>
            <if test="updateTime!=null">update_time=#{updateTime}</if>
        </set>
        where id =#{id}
</mapper>

测试类Test

@Autowired
private EmpMapper empMapper;

@Test
public void testUpdate02(){
    Emp emp = new Emp();
    emp.setId(19);
    emp.setUsername("Tom1112333");
    emp.setName("汤姆1112");
    emp.setGender((short)2);
    emp.setUpdateTime(LocalDateTime.now());

    //执行更新对象
    empMapper.update2(emp);
}