美文网首页工作生活
druid动态数据源配置

druid动态数据源配置

作者: 清远_03d9 | 来源:发表于2019-07-03 13:40 被阅读0次

    动态数据源使用
    Druid 动态数据源

    1. 动态数据源配置/src/main/resources/application.yml

    datasource:
       datasource: 
              master: 
                url: jdbc:mysql://127.0.0.1:3306/jeecg-boot?characterEncoding=UTF-8&useUnicode=true&useSSL=false
                username: root
                password: root
                driver-class-name: com.mysql.jdbc.Driver   
              multi-datasource1: 
                url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true
                username: root
                password: root
                driver-class-name: com.mysql.jdbc.Driver
    
    • master 为主数据源,系统默认数据源
    • multi-datasource1 :自定义的第三方数据源,multi-datasource1名称随便定义

    2. 动态数据源使用

    @DS 切换数据源:

    @DS 可以注解在方法上和类上,同时存在方法注解优先于类上注解。
    注解在service实现或mapper接口方法上,但强烈不建议同时在service和mapper注解。 (可能会有问题)
    没有@DS表示默认数据源
    @DS("dsName"):dsName可以为组名也可以为具体某个库的名称

    代码示例:

    @Service
    @DS("multi-datasource1")
    public class JeecgDemoServiceImpl implements JeecgDemoService {
    
      @Autowired
      private JdbcTemplate jdbcTemplate;
    
      public List<Map<String, Object>> selectAll() {
        return  jdbcTemplate.queryForList("select * from user");
      }
    
      @Override
      @DS("multi-datasource2")
      public List<Map<String, Object>> selectByCondition() {
        return  jdbcTemplate.queryForList("select * from user where age >10");
      }
    }
    

    相关文章

      网友评论

        本文标题:druid动态数据源配置

        本文链接:https://www.haomeiwen.com/subject/yzsqhctx.html