[JAVA] Comment tout insérer en même temps avec MyBatis

Aperçu

Remarques

environnement

Méthode

Il y a deux choses à faire.

  1. Définissez une méthode d'insertion par lots dans la classe Mapper
  2. Ajoutez les paramètres d'insertion par lots au xml

Exemple

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 à la classe Mapper

--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 des paramètres à xml

--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>

Comment utiliser du côté Java (Spring Boot)

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);
	}
}

référence

Recommended Posts

Comment tout insérer en même temps avec MyBatis
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
[Comment insérer une vidéo dans un hameau avec Rails]
Comment numéroter (nombre) avec html.erb
Comment mettre à jour avec activerecord-import
Comment insérer une vidéo
Mappage à une classe avec un objet de valeur dans How to My Batis
Comment démarrer avec Slim
Comment entourer n'importe quel caractère avec "~"
Comment utiliser mssql-tools avec Alpine
Comment insérer une bibliothèque externe
Comment utiliser l'annotation MyBatis Mapper
Comment démarrer Camunda avec Docker
Comment appeler plusieurs noms à la fois dans la même catégorie
Comment recadrer une image avec libGDX
Comment ajuster TextPosition avec l'extension de clavier iOS
Comment partager des fichiers avec Docker Toolbox
Comment compiler Java avec VsCode & Ant
[Android] Comment gérer les thèmes sombres
Comment utiliser BootStrap avec Play Framework
Comment insérer une vidéo dans Rails
Comment changer d'images miniatures avec JavaScript
[Note] Comment démarrer avec Rspec
Comment faire un contrôle basé sur l'API avec cancancan
Comment réaliser le téléchargement de fichiers avec Feign
Comment mettre à jour les modèles associés avec accepte_nested_attributes_for
Comment définir JAVA_HOME avec l'appassembler-maven-plugin de Maven
Comment implémenter TextInputLayout avec la fonction de validation
Comment gérer les erreurs de connexion avec l'appareil
Comment supprimer des données avec une clé externe
Comment tester l'étendue privée avec JUnit
Comment surveiller nginx avec docker-compose avec datadog
Comment gérer les actifs de précompilation a échoué.
Comment réaliser le téléchargement de fichiers avec Feign
Comment exécuter Blazor (C #) avec Docker
Comment insérer un traitement avec n'importe quel nombre d'éléments dans le traitement itératif dans Ruby
Comment créer un environnement Rails 6 avec Docker
Comment insérer des icônes à l'aide de Font awesome
Comment stocker des objets dans PostgreSQL au format JSON avec MyBatis (Mapper XML)
Comment télécharger Oracle JDK 8 rpm avec curl
[Java] Comment tester s'il est nul dans JUnit
Comment se moquer de chaque cas avec Mockito 1x
Comment se moquer de chaque cas avec PowerMock + Mockito1x
Comment enregistrer dans plusieurs tables avec une seule entrée
Comment tester les interruptions pendant Thread.sleep avec JUnit
Comment utiliser h2db intégré avec Spring Boot
Comment utiliser le framework Java avec AWS Lambda! ??
Comment utiliser l'API Java avec des expressions lambda
Comment démarrer avec Eclipse Micro Profile
Comment donner votre image à quelqu'un avec Docker
Comment écrire du code de test avec la certification de base
Comment créer une API avec GraphQL et Rails