Mybatis-基础操作
根据主键删除:


@Delete("delete from emp where id = #{id}")
public void delete(Integer id);
@Test
public void testDelete(){
empMapper.delete(16);
System.out.println("删除成功");
}
日志输出:




参数占位符:

新增:


@Insert("insert into emp (username, name, gender, image, job, entrydate, dept_id, create_time, update_time)" +
"values (#{username},#{name},#{gender}, #{image},#{job}, #{entrydate},#{deptId}, #{createTime}, #{updateTime})")属性名为驼峰命名防止格式错误
public void insert(Emp emp);
@Test
public void testInsert(){
//构造员工对象
Emp emp = new Emp();
emp.setUsername("Tom3");
emp.setName("汤姆3");
emp.setImage("1.jpg");
emp.setGender((short)1);
emp.setJob((short)1);
emp.setEntrydate(LocalDate.of(2000,1,1));
emp.setCreateTime(LocalDateTime.now());
emp.setUpdateTime(LocalDateTime.now());
emp.setDeptId(1);
empMapper.insert(emp);
获取返回的主键:
在接口中的@Insert上加入@Options(useGeneratedKeys = true, keyProperty = "id")
empMapper.insert(emp);
System.out.println(emp.getId());
更新:


@Update("update emp set username =#{username} ,name=#{name},gender=#{gender},image=#{image}," +
"job=#{job},entrydate=#{entrydate},dept_id=#{deptId},update_time=#{updateTime} where id = #{id};")
public void update(Emp emp);
//更新员工
@Test
public void testUpdate(){
//构造员工对象
Emp emp = new Emp();
emp.setId(20);
emp.setUsername("Tom1");
emp.setName("汤姆1");
emp.setImage("1.jpg");
emp.setGender((short)1);
emp.setJob((short)1);
emp.setEntrydate(LocalDate.of(2000,1,1));
emp.setUpdateTime(LocalDateTime.now());
emp.setDeptId(3);
//执行更新员工操作
empMapper.update(emp);
}
查询:
根据ID:


出现问题:
@Select("select * from emp where id = #{id}")
public Emp getById(Integer id);
@Test
public void testGetById(){
Emp emp = empMapper.getById(20);
System.out.println(emp);
}


根据条件:


由于#不能放入''内,所以用$,存在安全隐患
用concat拼接字符串即可:
@Select("select * from emp where name like concat('%',#{name},'%') and gender = #{gender} and " +
"entrydate between #{begin} and #{end} order by update_time desc;")
public List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end);
@Test
public void testList(){
List<Emp> empList = empMapper.list("张", (short) 1, LocalDate.of(2010, 1, 1), LocalDate.of(2020, 1, 1));
System.out.println(empList);
}
XML:


浙公网安备 33010602011771号