大家好,我是被白菜拱的猪。
目的:
在创建图书馆自习室的同时,根据自习室的行与列自动生成座位,假如自习室行与列为5,6,则生成30个座位
这里就用到了mybatis的批量添加
前台页面
后台mapper.xml部分
<insert id="addSeats" parameterType="java.util.List">
insert into seat(
seatId, roomId, row, col, status
)
values
<foreach collection="list" item="seat" index="index"
separator=",">
(
#{seat.seatId},
#{seat.roomId},
#{seat.row},
#{seat.col},
#{seat.status}
)
</foreach>
</insert>
service部分
/*
* 添加自习室,并根据自习室的行与列批量添加座位
*/
public int addRoomAndSeats(Room room) {
List<Seat> seatList=new ArrayList<>();
int rows=room.getRows();
int cols=room.getCols();
for(int i=1;i<=rows;i++){
for(int j=1;j<=cols;j++){
Seat seat=new Seat();
//确定座位的行数
seat.setRow(i);
seat.setCol(j);
seat.setRoomId(room.getRoomId());
seatList.add(seat);
}
}
//添加自习室
roomMapper.addRoom(room);
return seatMapper.addSeats(seatList);
}
这只是我的一家之言,性能方面可能有所欠缺,假如有更好的方法,欢迎留言。