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