依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
配置
spring:
datasource:
dynamic:
#主数据源
primary: test01
datasource:
# test01 数据源
test01:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/test01?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
# test02源
test02:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: root
url: jdbc:mysql://localhost:3306/test02?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
@DS注解灵活切换数据库
@Service
public class TestDynamicDatasourceServiceImpl implements TestDynamicDatasourceService {
@Autowired
JdbcTemplate jdbcTemplate;
@Override
public List<Set> test01() {
RowMapper<User> rowMapper =new BeanPropertyRowMapper<User>(User.class);
List<User> userList = jdbcTemplate.query("select * from test01.user", rowMapper);
return userList;
}
@DS("test02")
@Override
public List<User> test02() {
RowMapper<User> rowMapper =new BeanPropertyRowMapper<User>(User.class);
List<User> userList = jdbcTemplate.query("select * from test02.user", rowMapper);
return userList;
}
}
@DS注解可以加在类上,也可以加在方法上,加在方法上的优先级更高
本文使用 mdnice 排版