[JAVA] So fügen Sie mit MyBatis alles auf einmal ein

Überblick

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

Vorsichtsmaßnahmen

Umgebung

Methode

Es gibt zwei Dinge zu tun.

  1. Definieren Sie eine Batch-Insert-Methode in der Mapper-Klasse
  2. Fügen Sie XML-Einstellungen für die Stapeleinfügung hinzu

Beispiel

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

Fügen Sie der Mapper-Klasse eine Methode hinzu

UserFriendMapper.java


int insertBulk(@Param("friendList")List<UserFriend> friendList);

Fügen Sie XML-Einstellungen hinzu

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

Verwendung auf der Java-Seite (Spring Boot)

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

Referenz

Recommended Posts

So fügen Sie mit MyBatis alles auf einmal ein
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
[So fügen Sie ein Video mit Rails in haml ein]
Wie man mit html.erb nummeriert (nummeriert)
So aktualisieren Sie mit activerecord-import
So fügen Sie ein Video ein
Zuordnung zu einer Klasse mit einem Wertobjekt in How to My Batis
Wie fange ich mit schlank an?
Wie man ein Zeichen mit "~" einschließt
Wie man mssql-tools mit alpine benutzt
So fügen Sie eine externe Bibliothek ein
Verwendung der MyBatis Mapper-Annotation
So starten Sie Camunda mit Docker
So rufen Sie mehrere Namen gleichzeitig in derselben Kategorie auf
So beschneiden Sie ein Bild in libGDX
So passen Sie TextPosition mit der iOS-Tastaturerweiterung an
So teilen Sie Dateien mit Docker Toolbox
So kompilieren Sie Java mit VsCode & Ant
[Android] Wie man mit dunklen Themen umgeht
Verwendung von BootStrap mit Play Framework
So fügen Sie ein Video in Rails ein
So wechseln Sie Miniaturbilder mit JavaScript
[Hinweis] Erste Schritte mit Rspec
API-basierte Steuerung mit cancancan
So erreichen Sie den Dateidownload mit Feign
So aktualisieren Sie verwandte Modelle mit accept_nested_attributes_for
So setzen Sie JAVA_HOME mit dem Appassembler-Maven-Plugin von Maven
So implementieren Sie TextInputLayout mit Validierungsfunktion
So behandeln Sie Anmeldefehler mit devise
So löschen Sie Daten mit einem externen Schlüssel
So testen Sie den privaten Bereich mit JUnit
So überwachen Sie Nginx mit Docker-Compose mit Datadog
Der Umgang mit dem Vorkompilieren von Assets ist fehlgeschlagen.
So erreichen Sie das Hochladen von Dateien mit Feign
So führen Sie Blazor (C #) mit Docker aus
So fügen Sie die Verarbeitung mit einer beliebigen Anzahl von Elementen in die iterative Verarbeitung in Ruby ein
So erstellen Sie eine Rails 6-Umgebung mit Docker
So fügen Sie Symbole mit Font awesome ein
Speichern von Objekten in PostgreSQL als JSON mit MyBatis (Mapper XML)
So laden Sie Oracle JDK 8 U / min mit Curl herunter
[Java] So testen Sie, ob es in JUnit null ist
Wie man jeden Fall mit Mockito 1x verspottet
Wie man jeden Fall mit PowerMock + Mockito1x verspottet
So speichern Sie mit einer Eingabe in mehreren Tabellen
So testen Sie Interrupts während Thread.sleep mit JUnit
Verwendung des eingebauten h2db mit Federstiefel
Verwendung des Java-Frameworks mit AWS Lambda! ??
Verwendung der Java-API mit Lambda-Ausdrücken
Erste Schritte mit Eclipse Micro Profile
So geben Sie jemandem Ihr Image mit Docker
So schreiben Sie Testcode mit Basic-Zertifizierung
So erstellen Sie eine API mit GraphQL und Rails