应用一
主数据源和应用数据源(代码中手动切换数据源)
1.jdbc.properties(连接两个库)jdbc.user=root jdbc.password=123456 jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/survey?rewriteBatchedStatements=true log.url=jdbc:mysql://localhost:3306/survey_log?rewriteBatchedStatements=true
2.Spring配置文件的配置
3.定义一个类继承AbstractRoutingDataSource实现determineCurrentLookupKey方法,该方法可以实现数据库的动态切换,如下(方法返回的数据源的key值 根据key值去配响应的数据源)public class SurveyRouterDataSource extends AbstractRoutingDataSource{ @Override protected Object determineCurrentLookupKey() { //尝试从当前线程获取令牌 String token = RouterToken.getToken(); //检测令牌是否等于日志数据源对应的键 if(RouterToken.DATASOURCE_LOG.equals(token)){ //当前线程上的令牌,在使用过后需要移除 //避免影响当前线程内其他的数据库操作 RouterToken.removeToken(); //如果是日志数据源对应的键,将日志数据源的键返回 return RouterToken.DATASOURCE_LOG; } //如果不是日志数据源对应的键则返回null采用默认的数据源(主数据源) return null; } }
4.将路由器数据源的key值绑定到本地线程中/