druid动态数据源配置

动态数据源使用
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> selectAll() {
    return  jdbcTemplate.queryForList("select * from user");
  }

  @Override
  @DS("multi-datasource2")
  public List> selectByCondition() {
    return  jdbcTemplate.queryForList("select * from user where age >10");
  }
}

你可能感兴趣的:(druid动态数据源配置)