--Wenn Sie Listendaten einfügen möchten, ist es sinnlos, eine nach der anderen einzufügen, sodass Sie alle Daten auf einmal einfügen möchten.
Es gibt zwei Dinge zu tun.
Angenommen, Sie haben eine Tabelle wie diese (MySQL).
user_friend.sql
CREATE TABLE user_friend (
user_id int(10) NOT NULL,
friend_id int(10) NOT NULL
friend_name varchar(30) NOT NULL,
created_at datetime NOT NULL,
updated_at datetime NOT NULL,
PRIMARY KEY (user_id, friend_id)
);
UserFriendMapper.java
int insertBulk(@Param("friendList")List<UserFriend> friendList);
insert id =" insertBulk "
zu UserFriendMapper.xml
hinzuparameterType =" java.util.List "
ancollection =" list "
an, wenn Sie in Mapper nicht @ Param
angegeben habenUserFriendMapper.xml
<!--Füge das hinzu-->
<insert id="insertBulk" parameterType="java.util.List">
insert into user_friend
(user_id, friend_id, friend_name, created_at, updated_at)
values
<foreach collection="friendList" item="fr" separator=",">
(
#{fr.userId,jdbcType=INTEGER}, #{fr.friendId,jdbcType=INTEGER},
#{fr.friendName,jdbcType=VARCHAR}, #{fr.createdAt,jdbcType=TIMESTAMP},
#{fr.updatedAt,jdbcType=TIMESTAMP}
)
</foreach>
</insert>
Rufen Sie einfach die Methode auf, die Sie der Mapper-Klasse hinzugefügt haben.
FriendService.java
@Service
public class FriendService {
@Autowired
private UserFriendMapper userFriendMapper;
/**
* @Anzahl der zurückgegebenen Rückgaben int
*/
public int insertFriends(int userId, List<UserFriend> saveFriends) {
return userFriendMapper.insertBulk(saveFriends);
}
}
Recommended Posts