mybatis 批量删除数据的写法
1. 使用foreach标签绑定集合参数:
delete from table_name
where id in
#{item}
调用方式:
List ids = Arrays.asList(1, 2, 3);
int result = mapper.deleteByIds(ids);
2. 使用where标签绑定条件参数:
delete from table_name
id in
#{item}
调用方式:
Map map = new HashMap<>();
map.put("ids", Arrays.asList(1, 2, 3));
int result = mapper.deleteByCondition(map);
这两种方式的原理是使用MyBatis的动态SQL,通过foreach标签把List集合或数组中的每个元素绑定到SQL语句的in条件中,从而实现批量删除。使用这两种方式实现批量删除数据时, MyBatis会将底层的JDBC批量操作优化为一个SQL语句,以提高执行效率。所以,在实际使用中,若是对一张表需要批量删除上千条数据,使用这两种MyBatis的批量删除方式,效率会大大高于调用多次单条删除语句。