一,XML映射文件和动态SQL
-
XML映射文件的名称与Mapper接口名称一致,并且将XML映射文件和Mapper接口放置在相同包下(同包同名),右键创建目录/分隔,例:com/baidu/crm
-
XML映射文件的namespace属性为Mapper接口全限定名一致
-
XML映射文件中sql语句的id与Mapper接口中的方法名一致,并保持返回类型一致
二,批量删除(批量删除的接口也可以删除一个)
1.controller:
@DeleteMapping("/emps/{ids}")
public Result delete(@PathVariable List<Integer> ids){
empService.delete(ids);
return Result.success();
}
2.service:
void delete(List<Integer> ids);
public void delete(List<Integer> ids) {
empMapper.delete(ids);
}
3.mapper
void delete(List<Integer> ids);
XML映射文件,动态SQL
<delete id="delete">
delete from emp where id in
<foreach collection="ids" item="id" separator="," open="(" close=")">
#{id}
</foreach>
</delete>
三,删除单个
1.controller:
@DeleteMapping("/{id}")
public Result delete(@PathVariable Integer id){
log.info("根据id删除部门:{}",id);
deptService.delete(id);
return Result.success();
}
2.service:
void delete(Integer id);
public void delete(Integer id) {
deptMapper.deleteById(id);
}
3.mapper
@Delete("delete from dept where id = #{id}")
void deleteById(Integer id);
批量删除和单个删除功能的区别:
(1)传参的数据类型不同一个是list,另一个是integer。
(2)批量删除需要删除多个所以需要在XML映射文件写动态sql,删除单个的在mapper方法上面通过注解。