準備
まず、次のことを確認する必要があります。
- MySQL データベースがインストールされており、正常に接続できます。
- 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
、次にそれを使用して を作成しますSqlSession
。UserMapper
次に、インターフェイスのインスタンスを取得し、挿入するユーザー データを含むリストを作成します。insertBatch
最後に、一括挿入を実行するメソッドを呼び出し、挿入の完了後にトランザクションをコミットするメソッドを呼び出しますcommit
。
コードを実行する
これですべての準備が完了しました。このコードを実行すると、MyBatis はユーザー データをusers
MySQL データベース内のテーブルにバッチ挿入します。
要約する
この記事では、MyBatis を使用して MySQL バッチ挿入操作を実装する方法を学びました。まずデータベース テーブルと MyBatis マッピング ファイルを準備し、次にバッチ挿入操作を実行する Java コードを作成しました。MyBatis の一括挿入機能を使用すると、大量のデータの挿入のパフォーマンスと効率を大幅に向上させることができます。
このブログがあなたのお役に立てれば幸いです、読んでいただきありがとうございます! 何か問題やご質問がございましたら、お気軽にお問い合わせください。