Java SSMプロジェクトで複数のデータベースを構成して使用を切り替える
3282 ワード
ステップ1:まずjdbc.propertiesで プロファイルに2つのデータベース・リンクを追加
ステップ2:spring-mybatis.xmlに関連する変更を行います.
ステップ3:クラスの作成どのデータベースを使用するかを指定します.
ステップ4:動的データ・ソースのカスタマイズの説明
ステップ5:serviceImplで使用するデータの設定
jdbc_driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc_url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=RIS
jdbc_username=sa
jdbc_password=123
jdbc_classPage=org.apache.commons.dbcp.BasicDataSource
jdbc_driver2=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc_url2=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=UIS
jdbc_username2=sa
jdbc_password2=123
jdbc_classPage2=org.apache.commons.dbcp.BasicDataSource
ステップ2:spring-mybatis.xmlに関連する変更を行います.
ステップ3:クラスの作成どのデータベースを使用するかを指定します.
public class DBContextHolder {
private static final ThreadLocal contextHolder = new ThreadLocal();
public static void setDbType(String dbType) {
contextHolder.set(dbType);
}
public static String getDbType() {
return ((String) contextHolder.get());
}
public static void clearDbType() {
contextHolder.remove();
}
}
ステップ4:動的データ・ソースのカスタマイズの説明
public class DynamicDataSource extends AbstractRoutingDataSource {
@Override
protected Object determineCurrentLookupKey() {
return DBContextHolder.getDbType();
}
}
ステップ5:serviceImplで使用するデータの設定
public List FindExaminePatient(String beginDate,
String endDate) {
if(PropertiesUtil.DataSource.contains("RIS"))
{
DBContextHolder.setDbType("RIS");
}else
{
DBContextHolder.setDbType("UIS");
}
return examinePatientDao.FindExaminePatient(beginDate, endDate);
}