resin文件配置(我用的resin,其他的可自行配置)
jdbc/OracleDB
jdbc:oracle:thin:@192.168.1.9:1521:orcl
ycg
ycg
8
20
30s
jdbc/mysqlDB
jdbc:mysql://39.98.47.52:3306/dev-idr
admin
mySteel2019,!@#
8
20
30s
1. 然后写一个数据源持有类:
package org.thcic.ejw.components.datatable;
public class DataSourceHolder {
private static final ThreadLocal contextHolder = new ThreadLocal();
/**
* @Description: 设置数据源类型
* @param dataSourceType 数据库类型
* @return void
* @throws
*/
public static void setDataSourceType(String dataSourceType) {
contextHolder.set(dataSourceType);
}
/**
* @Description: 获取数据源类型
* @return String
* @throws
*/
public static String getDataSourceType() {
return contextHolder.get();
}
/**
* @Description: 清除数据源类型
* @return void
* @throws
*/
public static void clearDataSourceType() {
contextHolder.remove();
}
}
2. 写一个数据源路由类
package org.thcic.ejw.components.datatable;
import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;
public class RoutingDataSource extends AbstractRoutingDataSource {
@Override
protected Object determineCurrentLookupKey() {
return DataSourceHolder.getDataSourceType();
}
}
3. 配置数据源路由
4. spring整合
${dataSource.hibernate.dialect}
true
utf-8
${dataSource.hibernate.show_sql}
50
org.thcic.ejw.sys.vo
org.thcic.ejw.purchase.setting.vo
org.thcic.ejw.purchase.inquiry.vo
org.thcic.ejw.purchase.notice.vo
org.thcic.ejw.purchase.bid.vo
org.thcic.ejw.purchase.report.vo
5.双jdbcTemplate配置
lazy-init="false" autowire="default" >
lazy-init="false" autowire="default" >
6.使用数据源
/*jdbcTemplate的使用*/
@Autowired
@Qualifier("oracleJdbcTemplate")
private JdbcTemplate dbTwojdbcTemplate;
@Autowired
@Qualifier("mysqlJdbcTemplate")
private JdbcTemplate dbOneJdbcTemplate;
/*数据源切换*/
//获取数据源类型
DataSourceHolder.getDataSourceType();
//设置为 db1 的数据源
DataSourceHolder.setDataSourceType("db1");
//设置为 db2 的数据源
DataSourceHolder.setDataSourceType("db2");
双数据源配置(一个项目中链接两个数据库)
标签:new routing 文件 ice scan osc red lookup void
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:https://www.cnblogs.com/HHR-SUN/p/11187408.html