Il y a deux choses à faire.
Par exemple, supposons que vous ayez une table comme celle-ci (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)
);
--Ajouter une méthode d'insertionBulk
--Passez une liste des données que vous souhaitez insérer comme argument
--Il est facultatif de le nommer avec @ Param
UserFriendMapper.java
int insertBulk(@Param("friendList")List<UserFriend> friendList);
--Ajouter ʻinsert id = "insertBulk" à ʻUserFriendMapper.xml
--Spécifiez dans parameterType =" java.util.List "
--Spécifiez collection =" list "
si vous n'avez pas spécifié @ Param
dans Mapper
UserFriendMapper.xml
<!--Ajoute ça-->
<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>
Appelez simplement la méthode que vous avez ajoutée à la classe Mapper.
FriendService.java
@Service
public class FriendService {
@Autowired
private UserFriendMapper userFriendMapper;
/**
* @nombre de retours int inséré
*/
public int insertFriends(int userId, List<UserFriend> saveFriends) {
return userFriendMapper.insertBulk(saveFriends);
}
}
Recommended Posts