目录
1. 书写SQL语句
2. 在AlbumMapper.java中添加抽象方法
3. 在AlbumMapper.xml中配置SQL
4. 在AlbumMapperTests.java中编写并执行测试
1. 书写SQL语句
需要执行的SQL语句大致是:
insert into pms_album (name, description, sort) values (?,?,?), (?,?,?), ... (?,?,?)
2. 在AlbumMapper.java
中添加抽象方法
在AlbumMapper.java
中添加抽象方法:
/**
* 批量插入相册数据
*
* @param albumList 相册数据的集合
* @return 受影响的行数
*/
int insertBatch(List<Album> albumList);
3. 在AlbumMapper.xml
中配置SQL
在AlbumMapper.xml
中配置SQL:
<!-- int insertBatch(List<Album> albumList); -->
<insert id="insertBatch" useGeneratedKeys="true" keyProperty="id">
INSERT INTO pms_album (
name, description, sort
) VALUES
<foreach collection="list" item="album" separator=",">
(#{album.name}, #{album.description}, #{album.sort})
</foreach>
</insert>
4. 在AlbumMapperTests.java
中编写并执行测试
在AlbumMapperTests.java
中编写并执行测试
@Test
void insertBatch() {
List<Album> albumList = new ArrayList<>();
for (int i = 1; i <= 5; i++) {
Album album = new Album();
album.setName("测试数据" + i);
album.setDescription("测试数据的简介" + i);
album.setSort(99);
albumList.add(album);
}
int rows = mapper.insertBatch(albumList);
log.debug("批量插入数据完成,受影响的行数:{}", rows);
}
如果有多个通过<insert>
等标签配置的语句对应到同一个抽象方法,则会出现错误,例如:
Caused by: java.lang.IllegalArgumentException: Mapped Statements collection already contains value for cn.tedu.csmall.product.mapper.AlbumMapper.insert. please check file [C:\\Users\\ChengHeng\\IdeaProjects\\jsd2208-csmall-product-teacher\\target\\classes\\mapper\\AlbumMapper.xml] and file [C:\\Users\\ChengHeng\\IdeaProjects\\jsd2208-csmall-product-teacher\\target\\classes\\mapper\\AlbumMapper.xml]
个人主页:居然天上楼
感谢你这么可爱帅气还这么热爱学习~~
人生海海,山山而川
你的点赞👍 收藏⭐ 留言📝 加关注✅
是对我最大的支持与鞭策