druid链接不同数据源
使用若依后台管理,集成自主业务,后台管理库是mysql,业务库是sqlserver;具体配置如下;
1.pom 加入sqlserver配置
1 <dependency> 2 <groupId>com.microsoft.sqlservergroupId> 3 <artifactId>sqljdbc4artifactId> 4 <version>4.0version> 5 dependency>
2.application-druid.yml配置
*注意链接不同数据库使用不同驱动
# 数据源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: # 主库数据源 master: url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true username: root password: wuhailong123 driverClassName: com.mysql.jdbc.Driver # 从库数据源 slave: # 从数据源开关/默认关闭 enabled: true url: jdbc:sqlserver://192.168.2.11\HJCDR;DatabaseName=HJ.DEV.PDP.TEST username: sa password: rjgcb2.60 driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver # 初始连接数 initial-size: 10 # 最大连接池数量 max-active: 100 # 最小连接池数量 min-idle: 10 # 配置获取连接等待超时的时间 max-wait: 60000 # 打开PSCache,并且指定每个连接上PSCache的大小 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: false test-on-return: false stat-view-servlet: enabled: true url-pattern: /monitor/druid/* filter: stat: log-slow-sql: true slow-sql-millis: 1000 merge-sql: false wall: config: multi-statement-allow: true
3.业务代码中切换不同数据源
1 @Override 2 public List<Project> findAll() { 3 DynamicDataSourceContextHolder.setDateSoureType("SLAVE"); 4 return projectMapper.selectProjectList(null); 5 }