mybatis で複数のデータソースを設定する方法は?
属性を指定することで、`mybatis`内で複数データソースを設定できます。
一般的に、複数データソースを設定するための方法をご紹介します。
まず、 `mybatis-config.xml` ファイルで複数の タグを追加し、各 で異なるデータソース情報を定義します。例を次に示します。
<environments default="development"> <environment id="development"> <datasource type="com.example.datasource1"> <property name="url" value="jdbc:mysql: localhost:3306="" db1"=""> <property name="username" value="user1"> <property name="password" value="password1"> <environment id="production"> <datasource type="com.example.datasource2"> <property name="url" value="jdbc:mysql: localhost:3306="" db2"=""> <property name="username" value="user2"> <property name="password" value="password2"> </property name="password" value="password2"></property name="username" value="user2"></property name="url" value="jdbc:mysql:></datasource type="com.example.datasource2"></environment id="production"></property name="password" value="password1"></property name="username" value="user1"></property name="url" value="jdbc:mysql:></datasource type="com.example.datasource1"></environment id="development"></environments default="development">
上の例では、2つのデータソースを設定しています。 `development` は開発環境のデータソース、`production` は運用環境のデータソースです。 実際の設定ではカスタムデータソースのデータソースタイプ (例: `com.example.DataSource1`、`com.example.DataSource2`) と対応するデータベース接続情報を置き換える必要があります。
次に、Javaコード内では`SqlSessionFactoryBuilder`クラスの`build()`メソッドを用いて、使用したいデータソース環境を指定して`SqlSessionFactory`インスタンスを作成する
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class MyBatisExample {
public static void main(String[] args) {
String configPath = "path/to/mybatis-config.xml";
// 指定要使用的数据源环境
String environment = "development"; // 或者是 "production"
// 创建 SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(Resources.getResourceAsStream(configPath), environment);
// 使用 sqlSessionFactory 进行后续操作
// ...
}
}
上記サンプルでは、`build()`メソッドのデータソース環境を指定する2番目の引数`environment`を使用したオーバーロード版を使用しています。異なる環境設定に従って、MyBatisは対応するデータソースを使用してデータベース操作を実行します。
各“タグに適切なデータソースプロパティを正しく設定し、Javaコードで必要に応じて特定のデータソース環境を選択するよう構成してください。