MyBatis は MySQL のバッチ挿入を実装します

準備

まず、次のことを確認する必要があります。

  1. MySQL データベースがインストールされており、正常に接続できます。
  2. MyBatis 環境の構成が完了し、単一の挿入ステートメントを正常に実行できるようになりました。

データベーステーブルの準備

一括挿入のプロセスを示すために、users次のフィールドを含む名前のテーブルを作成します。

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100),
  email VARCHAR(100)
);

MyBatis マッピング ファイル

MyBatis マッピング ファイルを作成して、挿入操作の SQL ステートメントを定義する必要があります。この例では、XML 形式のマッピング ファイルを使用します。

まず、UserMapper.xmlというファイルを作成し、次の内容を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.example.UserMapper">
  
  <insert id="insertBatch" parameterType="java.util.List">
    INSERT INTO users (name, email)
    VALUES
    <foreach collection="list" item="item" separator=",">
      (#{item.name}, #{item.email})
    </foreach>
  </insert>
  
</mapper>

上記のコードでは、insertBatchという挿入ステートメントを定義しました。java.util.List各要素がオブジェクトである type パラメーターを受け取りますUserラベルを使用して<foreach>リストをループし、対応する挿入ステートメントを生成しました。

Javaコード

次に、MyBatis を使用して、Java コードでバッチ挿入操作を実行する必要があります。Userまず、データベース内のユーザーを表すクラスを作成する必要があります。

public class User {
    
    
  private String name;
  private String email;
  
  // 省略构造函数和getter/setter方法
}

UserMapper次に、一括挿入操作のメソッドを定義するインターフェイスを作成できます。

public interface UserMapper {
    
    
  void insertBatch(List<User> users);
}

最後に、Java コードでは、SqlSessionFactoryと を使用してSqlSession一括挿入操作を実行する必要があります。簡単な例を次に示します。

String resource = "path/to/your/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

try (SqlSession session = sqlSessionFactory.openSession()) {
    
    
  UserMapper userMapper = session.getMapper(UserMapper.class);

  List<User> users = new ArrayList<>();
  users.add(new User("John", "john@example

.com"));
  users.add(new User("Alice", "[email protected]"));

  userMapper.insertBatch(users);
  session.commit();
}

上記のコードでは、最初に を使用してインスタンスSqlSessionFactoryBuilderを構築しSqlSessionFactory、次にそれを使用して を作成しますSqlSessionUserMapper次に、インターフェイスのインスタンスを取得し、挿入するユーザー データを含むリストを作成します。insertBatch最後に、一括挿入を実行するメソッドを呼び出し、挿入の完了後にトランザクションをコミットするメソッドを呼び出しますcommit

コードを実行する

これですべての準備が完了しました。このコードを実行すると、MyBatis はユーザー データをusersMySQL データベース内のテーブルにバッチ挿入します。

要約する

この記事では、MyBatis を使用して MySQL バッチ挿入操作を実装する方法を学びました。まずデータベース テーブルと MyBatis マッピング ファイルを準備し、次にバッチ挿入操作を実行する Java コードを作成しました。MyBatis の一括挿入機能を使用すると、大量のデータの挿入のパフォーマンスと効率を大幅に向上させることができます。

このブログがあなたのお役に立てれば幸いです、読んでいただきありがとうございます! 何か問題やご質問がございましたら、お気軽にお問い合わせください。

おすすめ

転載: blog.csdn.net/chy555chy/article/details/130937883