springboot3 怎么用@DS 实现多数据源
1、添加pom依赖:
注解@DS是基于dynamic-datasource-spring-boot-starter 实现多数据源切换的,添加pom依赖:
<dynamic-datasource-spring-boot-starter.version>4.3.1</dynamic-datasource-spring-boot-starter.version> <dependency><groupId>com.baomidou</groupId><artifactId>dynamic-datasource-spring-boot3-starter</artifactId><version>${dynamic-datasource-spring-boot-starter.version}</version>
</dependency>
2、配置数据源:
在application.properties或application.yml文件中配置多个数据源的连接信息。
spring:datasource:dynamic:primary: master # 设置默认数据源datasource:master:url: jdbc:mysql://localhost:3306/master_db?useUnicode=true&characterEncoding=utf8&useSSL=falseusername: rootpassword: passworddriver-class-name: com.mysql.cj.jdbc.Driverlinknow:url: jdbc:mysql://localhost:3306/linknow_db?useUnicode=true&characterEncoding=utf8&useSSL=falseusername: linknow_userpassword: linknow_passworddriver-class-name: com.mysql.cj.jdbc.Driver
3、使用数据源:
在服务类或数据访问层中通过@DS注解来指定使用哪个数据源,例如:
@DS("linknow")public void updateTicketNumber(Map<String, Object> json) {try {String sql = "UPDATE conversation SET ticket_number = ? WHERE room_id = ?";jdbcTemplate.update(sql, json.get("worksheet_no"), json.get("room_id"));} catch (Exception e) {e.printStackTrace();}}
master 数据源不用注解指定