使用mybatisPlus+mysql+boot 进行多数据源配置

pom 文件

  1. boot + mybatisPlus

maven 文件

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
  4. <version>${version}</version>
  5. </dependency>
  6. <!--进行数据源之间的切换-->

yml文件配置

  1. spring:
  2. datasource:
  3. dynamic:
  4. primary: master #设置默认的数据源或者数据源组,默认值即为master
  5. strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
  6. datasource:
  7. master:
  8. url: jdbc:mysql://xx.xx.xx.xx:3306/dynamic
  9. username: root
  10. password: 123456
  11. driver-class-name: com.mysql.jdbc.Driver # 3.2.0开始支持SPI可省略此配置
  12. slave_1:
  13. url: jdbc:mysql://xx.xx.xx.xx:3307/dynamic
  14. username: root
  15. password: 123456
  16. driver-class-name: com.mysql.jdbc.Driver
  17. slave_2:
  18. url: ENC(xxxxx) # 内置加密,使用请查看详细文档
  19. username: ENC(xxxxx)
  20. password: ENC(xxxxx)
  21. driver-class-name: com.mysql.jdbc.Driver

使用ds 进行 数据源之间切换 可以 在方法上也可以在类上 不能在Mapper上

image.png

java 代码案例

  1. @Service
  2. @DS("slave")
  3. public class UserServiceImpl implements UserService {
  4. @Autowired
  5. private JdbcTemplate jdbcTemplate;
  6. public List selectAll() {
  7. return jdbcTemplate.queryForList("select * from user");
  8. }
  9. @Override
  10. @DS("slave_1")
  11. public List selectByCondition() {
  12. return jdbcTemplate.queryForList("select * from user where age >10");
  13. }
  14. }