• springboot多数据源配置


    application.yml

     1 spring:
     2   datasource:
     3     db1:
     4       type: com.alibaba.druid.pool.DruidDataSource
     5       driver-class-name: com.mysql.cj.jdbc.Driver
     6       jdbc-url: jdbc:mysql://192.168.188.10:3306/liuxn?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
     7       username: root
     8       password: root
     9     db2:
    10       type: com.alibaba.druid.pool.DruidDataSource
    11       driver-class-name: com.mysql.cj.jdbc.Driver
    12       jdbc-url: jdbc:mysql://192.168.188.10:3306/liuxn2?useSSL=false&characterEncoding=utf8&serverTimezone=Asia/Shanghai
    13       username: root
    14       password: root

    java代码配置多个数据源配置

    1、DataSource1Config

     1 @Configuration
     2 @MapperScan(basePackages ="com.xs.beebot.shandong.report.mapper.one",sqlSessionTemplateRef ="oneSqlSessionTemplate" )
     3 public class DataSource1Config {
     4 
     5     @Bean(name = "oneDataSource")
     6     @ConfigurationProperties(prefix = "spring.datasource.db1")
     7     @Primary
     8     public DataSource testDataSource() {
     9         return DataSourceBuilder.create().build();
    10     }
    11 
    12     @Bean(name = "oneSqlSessionFactory")
    13     @Primary
    14     public SqlSessionFactory testSqlSessionFactory(@Qualifier("oneDataSource") DataSource dataSource) throws Exception {
    15         SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    16         bean.setDataSource(dataSource);
    17         bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/one/*.xml"));
    18         return bean.getObject();
    19     }
    20 
    21     @Bean(name = "oneTransactionManager")
    22     @Primary
    23     public DataSourceTransactionManager testTransactionManager(@Qualifier("oneDataSource") DataSource dataSource) {
    24         return new DataSourceTransactionManager(dataSource);
    25     }
    26 
    27     @Bean(name = "oneSqlSessionTemplate")
    28     @Primary
    29     public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("oneSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
    30         return new SqlSessionTemplate(sqlSessionFactory);
    31     }
    32 }

    2、DataSource2Config

     1 @Configuration
     2 @MapperScan(basePackages ="com.xs.beebot.shandong.report.mapper.two",sqlSessionTemplateRef ="twoSqlSessionTemplate" )
     3 public class DataSource2Config {
     4 
     5     @Bean(name = "twoDataSource")
     6     @ConfigurationProperties(prefix = "spring.datasource.db2")
     7     @Primary
     8     public DataSource testDataSource() {
     9         return DataSourceBuilder.create().build();
    10     }
    11 
    12     @Bean(name = "twoSqlSessionFactory")
    13     @Primary
    14     public SqlSessionFactory testSqlSessionFactory(@Qualifier("twoDataSource") DataSource dataSource) throws Exception {
    15         SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    16         bean.setDataSource(dataSource);
    17         bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/two/*.xml"));
    18         return bean.getObject();
    19     }
    20 
    21     @Bean(name = "twoTransactionManager")
    22     @Primary
    23     public DataSourceTransactionManager testTransactionManager(@Qualifier("twoDataSource") DataSource dataSource) {
    24         return new DataSourceTransactionManager(dataSource);
    25     }
    26 
    27     @Bean(name = "twoSqlSessionTemplate")
    28     @Primary
    29     public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("twoSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
    30         return new SqlSessionTemplate(sqlSessionFactory);
    31     }
    32 }

    代码使用:

     1 @Service
     2 public class UserService {
     3 
     4     @Resource
     5     private UserMapper userMapper;
     6 
     7     @Resource
     8     private LoginMapper loginMapper;
     9 
    10     public List<User> getAll(){
    11        return userMapper.selectByExample(new UserExample());
    12     }
    13 
    14 
    15     public List<Login> getAllLogin(){
    16         return loginMapper.selectByExample(new LoginExample());
    17     }
    18 }
  • 相关阅读:
    Serverless
    使用excelJS实现excel文件转json文件
    使用excelJS实现json文件转excel文件
    git rebase 和 git merge的异同
    JS 箭头函数与普通函数的区别
    JS 节流函数(throttle)与防抖函数(debounce)
    http协议解析
    前端必会的js知识总结整理
    前端必会css整理
    推荐几个有趣的在线调试工具
  • 原文地址:https://www.cnblogs.com/lxn0216/p/14384081.html
Copyright © 2020-2023  润新知