1.jeesite.properties 添加数据源信息,(url2,username2,pawwword2)
#mysql database setting
jdbc.type=mysql
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/website?useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
#mysql2 database setting
#jdbc.type=mysql
#jdbc.driver=com.mysql.jdbc.Driver
jdbc.url2=jdbc:mysql://218.28.123.82:3306/stkcentervideosys?useUnicode=true&characterEncoding=utf-8
jdbc.username2=root
jdbc.password2=root
2.修改spring-context.xml(src/main/resources/),3处需要修改/添加
第一处(spring-context.xml):
第二处(spring-context.xml):修改为dynamicDataSource
第三处(spring-context.xml):修改为dynamicDataSource
3.添加DynamicDataSource.java (com.thinkgem.jeesite.common.db.DynamicDataSource.java)
package com.thinkgem.jeesite.common.db;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
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中切换(在service层切换不管用,还没查原因)
//切换数据源dataSource2,默认数据源dataSource
DynamicDataSource.setCurrentLookupKey("dataSource2");
List list = stkScenerySpotService.findAll();
model.addAttribute("list",list);
DynamicDataSource.setCurrentLookupKey("dataSource");
注:
要对切换的数据源dataSource2 中的表手动写映射和三层
实体:com.thinkgem.jeesite.modules.cms.entity.StkScenerySpot.java
service:com.thinkgem.jeesite.modules.cms.service.StkScenerySpotService.java
mapper:StkScenerySpotDao.xml (src/main/resources/modules/cms)
我只查所有,所以sql很简单
a.Spot_Id AS "id",
a.CamId AS "camId",
a.Name AS "name",
a.Comment AS "commnet"
SELECT
FROM stk_scenery_spot a
1 = 1
ORDER BY a.Spot_Id DESC
效果:
jeesite数据库表
datasource2数据表
获取数据
前端展示
datasource2数据表中的内容
参考资料:http://www.hifreud.com/2015/02/25/07-spring-datasources/
http://www.cnblogs.com/digdeep/p/4512368.html
大小: 104.3 KB
大小: 124.3 KB
大小: 37.5 KB
大小: 9.2 KB
大小: 28 KB
分享到:
2015-10-12 10:00
浏览 8354
评论
1 楼
wqlin_007
2017-03-28
我也在service进行了配置不成功,是不是在进入service时sqlSessionFactory和mapperScannerConfigurer中已经通过getCurrentLookupKey()获取了数据库连接?能不能在DAO层进行切换数据源呢?查了一些资料,也有配置在DAO上的,不过我现在还没有测试成功