Java SSMプロジェクトで複数のデータベースを構成して使用を切り替える

3282 ワード

ステップ1:まずjdbc.propertiesで プロファイルに2つのデータベース・リンクを追加
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);
	}