目录
3. 在AlbumMapper.xml中配置以上抽象方法映射的SQL语句
需要执行的SQL语句大致是:
delete from pms_album where id=? or id=? or ... id=?
delete from pms_album where id in (?,?, ... ?)
注:通常,使用以上第2种做法。
AlbumMapper.java接口添加抽象方法在AlbumMapper.java接口添加抽象方法:
int deleteByIds(Long[] ids);
或:
int deleteByIds(Long... ids);
或:
int deleteByIds(List ids );
提示:可变参数在被处理时,本质上就是数组。
AlbumMapper.xml中配置以上抽象方法映射的SQL语句在AlbumMapper.xml中配置以上抽象方法映射的SQL语句:
- <!-- int deleteByIds(Long[] ids); -->
- <delete id="deleteByIds">
- DELETE FROM pms_album WHERE id IN (
- <foreach collection="array" item="id" separator=",">
- #{id}
- </foreach>
- )
- </delete>
标签书写规范在配置SQL语句时,标签是用于对参数进行遍历的,其属性配置:
collection:表示被遍历对象,当抽象方法的参数只有1个且没有配置@Param注解时,如果参数是List集合类型的,则此属性值为list,如果参数是数组类型的(含可变参数),则此属性值为array;否则,此属性值为方法的参数名称,或使用@Param注解后则取值为注解参数中指定的名称;item:表示遍历过程中各元素的变量名,在标签子级的占位符(例如#{})中使用此名称可以表示各元素;separator:表示遍历过程中生成各值时的分隔符。AlbumMapperTests类中编写并执行测试
@Test
void deleteByIds() {
Long[] ids = {1L, 3L, 5L};
int rows = mapper.deleteByIds(ids);
log.debug("批量删除数据完成,受影响的行数:{}", rows);
}
个人主页:居然天上楼
感谢你这么可爱帅气还这么热爱学习~~
人生海海,山山而川
你的点赞👍 收藏⭐ 留言📝 加关注✅
是对我最大的支持与鞭策
