jeesite 多数据源配置

1.jeesite.properties 添加第二个数据源信息(type2,driver2,
url2,username2,pawwword2)

jdbc.type2=oracle
jdbc.driver2=oracle.jdbc.driver.OracleDriver
jdbc.url2=jdbc:oracle:thin:@localhost:1521:oracle
jdbc.username2=test
jdbc.password2=test                    

2.修改spring-context.xml(src/main/resources/),有3处需要修改/添加
第一处,添加bean id="dataSource2"

 
        
        
        
        
        
        
        
        
        
        
         
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
         
    

第二处(spring-context.xml):修改为sqlSessionFactory bean,将dataSource改为dynamicDataSource


        
...
    

        
...
    

第三处 (spring-context.xml):修改为transactionManager bean
同第二处一样 将ref="dataSource" 改为ref="dynamicDataSource"
并添加 dynamicDataSource bean

    
          
          
              
                  
                  
              
          
      

。 2016/11/23 14:44:57

**3.添加DynamicDataSource.java **

package com.thinkgem.jeesite.common.db;
 
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
 
/**
 * Mysql 多数据源切换
 *
 * @author fmye
 * @version V1.0
 * @Description:
 * @date 2016/11/23
 */
public class DynamicDataSource extends AbstractRoutingDataSource {
    private static final ThreadLocal contextHolder = new ThreadLocal();  
       
  
    public static String getCurrentLookupKey() {  
        return (String) contextHolder.get();  
    }  
   
 
    public static void setCurrentLookupKey(String currentLookupKey) {  
        contextHolder.set(currentLookupKey);  
    }  
  
    @Override  
    protected Object determineCurrentLookupKey() {  
        return getCurrentLookupKey();  
    }  
}

4.在Controller中控制数据源

            DynamicDataSource.setCurrentLookupKey("dataSource2");  
            Dy list = dyService.get("1");
            System.out.println("******************************333"+list.getId());
            model.addAttribute("list",list);  
            DynamicDataSource.setCurrentLookupKey("dataSource");

**注: 要对切换的数据源dataSource2 中的表手动写映射和三层实体 **
entity :com.thinkgem.jeesite.modules.cms.entity.Dy.java
service:com.thinkgem.jeesite.modules.cms.service.DyService.java
mapper:DyDao.xml (src/main/resources/modules/cms)

参考资料:
http://www.hifreud.com/2015/02/25/07-spring-datasources/ http://www.cnblogs.com/digdeep/p/4512368.html

你可能感兴趣的:(jeesite 多数据源配置)