1.在.properties配置文件中 添加第二个数据源信息(type2,driver2,
  url2,username2,pawwword2)

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

3.添加DynamicDataSource.java

package com.thinkgem.wlw.common.db;

import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource;

/**
* 数据源切换方法类
* @author zhouhe
* @version 2018-11-7
*/
public class DynamicDataSource extends AbstractRoutingDataSource {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); public static String getCurrentLookupKey() {
return (String) contextHolder.get();
} /**
* 设置线程的数据源
* @param currentLookupKey
*/
public static void setCurrentLookupKey(String currentLookupKey) {
contextHolder.set(currentLookupKey);
} @Override
protected Object determineCurrentLookupKey() {
return getCurrentLookupKey();
}
}

4.在Controller中控制数据源

在Controller中方法的开头用  DynamicDataSource.setCurrentLookupKey("dataSource2"); 来切换数据数据源,

这里要注意的是方法结束的时候要把数据源切换回来 DynamicDataSource.setCurrentLookupKey("dataSource");

否则会有问题。

注:这里说一下在jeesite中使用的话要有一点需要注意,就是在修改删除方法中切换数据源的话要在

Controller中的get();方法中加上 DynamicDataSource.setCurrentLookupKey("dataSource2");  因为在

执行修改,删除方法之前会先执行此方法。

这里要注意,切换数据源不能放到事务里面,否则会导致无法切换

还有一个问题,这里的数据源切换可能会出现数据库连接超时timeout现象,需要设置如下:

一:数据库连接加上 autoReconnect=true;(当数据库连接异常中断时,是否自动重新连接?)

二:mysql中my.ini文件添加(这里设置完需要重启mysql)

wait_timeout=
interactive_timeout=

ssm多数据源配置的更多相关文章

  1. mysql之整合ssm多数据源配置

    一,基于SSM框架的多数据源配置 1.创建DynamicDataSourceHolder用于持有当前线程中使用的数据源标识 public class DynamicDataSourceHolder { ...

  2. hibernate与ssm多数据源配置

    hibernate: 1.配置多个数据源,比如2个:hibernate.cfg1.xml~hibernate.cfg8.xml <?xml version='1.0' encoding='UTF ...

  3. SSM框架之多数据源配置

    多数据源的应用场景:主要是数据库拆分后,怎样让多个数据库结合起来来达到业务需求. SSM框架(Spring+SpringMVC+MyBatis(MyBatis-Plus))是目前最常用的,此次仍然是m ...

  4. Javaweb配置最全的数据源配置

    DBCP DBCP是Apache推出的数据库连接池(Database Connection Pool). 操作步骤: 添加jar包: commons-dbcp-1.4.jar commons-pool ...

  5. Spring实现多数据源配置

    一.前言 对于小型项目,服务器与数据库是可以在同一台机子上的,但随着业务的庞大与负责,数据库和服务器就会分离开来.同时随着数据量的增大,数据库也要分开部署到多台机子上. 二.Spring配置文件修改 ...

  6. SSM框架的配置Spring+Springmvc +Mybatis

    ssm框架是由spring mvc +spring+mybatis组成 快速阅读 通过spring的配置文件spring.xml,在servlet中指定spring mvc的配置文件spring-mv ...

  7. ssm框架文件配置

    1 简介 Spring MVC (web level),采取 MVC 架构,意图取代麻烦的 Servlet 写法,简化 web 层 MyBatis (dao level),意图取代 jdbc 操作数据 ...

  8. 使用springboot + druid + mybatisplus完成多数据源配置

    一. 简介 1. 版本 springboot版本为2.0.3.RELEASE,mybatisplus版本为2.1.9, druid版本为1.1.9,swagger版本为2.7.0 2. 项目地址   ...

  9. JAVA spring hibernate 多数据源配置记录

    数据源配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http:// ...

随机推荐

  1. 二。Hibernate 查询 HQL、SQL方式

    hibernate的查询1.HQL方式:所有查询都是根据java对象名来完成,对象名替换表名2.SQL方式:保留原来的sql查询风格3.可以通过设置第一条和最大条数来实现各种数据库的分页查询4.通过B ...

  2. 04 前端篇(JQuery)

    jquery: http://www.cnblogs.com/yuanchenqi/articles/5663118.html 优点:简洁.兼容 jquery 对象:   jQuery 或  $ 基本 ...

  3. IP防护等级简介

    IP(INGRESS PROTECTION)防护等级系统是由IEC(INTERNATIONAL ELECTROTECHNICAL COMMISSION)所起草,将电器依其防尘防湿气之特性加以分级 IP ...

  4. java返回数据工具类

    import com.qbskj.project.util.SpringUtils; /** * 消息 * */ public class Message { /** * 类型 */ public e ...

  5. 判断一个点是否在某个区域内。百度,高德,腾讯都能用。(php版)

    <?php // *** 配置文件(表示区域的三维数组)其内的点,必须按顺时针方向依次给出! $area = array( // 天通苑店 0 => array( array('x'=&g ...

  6. window.open() & iframe & tab

    window.open() & iframe & tab window.open() open pages in the same window / tab https://stack ...

  7. 响应式用法rem,需要加入这段JS

    <script type="text/javascript"> $(function(){ function size() { winWidth = $(window) ...

  8. Jetson TX1安装pyTorch

    https://www.ncnynl.com/archives/201705/1629.html https://blog.csdn.net/qq_36302589/article/details/8 ...

  9. iPhone 系统刷机

    1. 下载好固件(爱思 或者 pp助手) e.g. http://jailbreak.25pp.com/gujian/ 2. 将电脑与手机连接上,弹出iTunes软件即可 3. 长按手机电源键 关闭手 ...

  10. 为知笔记Linux版编译使用记录

    本文档长期不定时更新,根据使用情况进行反馈. 目录 编译 Error creating SSL context 无法输入中文 如何打包使用 桌面图标 Markdown Windows 版本差异 常用快 ...