Spring Boot 整合 jdbctemplate 多数据源
参考地址:https://blog.csdn.net/u012702547/article/details/88622445
1.pom.xml引包
<dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-jdbcartifactId> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>mysqlgroupId> <artifactId>mysql-connector-javaartifactId> <version>5.1.28version> <scope>runtimescope> dependency> <dependency> <groupId>com.alibabagroupId> <artifactId>druid-spring-boot-starterartifactId> <version>1.1.10version> dependency>
2.pplication.properties中配置数据源
spring.datasource.one.url=jdbc:mysql:///test01?useUnicode=true&characterEncoding=utf-8 spring.datasource.one.username=root spring.datasource.one.password=root spring.datasource.one.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.two.url=jdbc:mysql:///test02?useUnicode=true&characterEncoding=utf-8 spring.datasource.two.username=root spring.datasource.two.password=root spring.datasource.two.type=com.alibaba.druid.pool.DruidDataSource
3.注解配置多数据源
@Configuration public class DataSourceConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.one") DataSource dsOne() { return DruidDataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix = "spring.datasource.two") DataSource dsTwo() { return DruidDataSourceBuilder.create().build(); } }
@Configuration public class JdbcTemplateConfig { @Bean JdbcTemplate jdbcTemplateOne(@Qualifier("dsOne") DataSource dsOne) { return new JdbcTemplate(dsOne); } @Bean JdbcTemplate jdbcTemplateTwo(@Qualifier("dsTwo") DataSource dsTwo) { return new JdbcTemplate(dsTwo); } }
4.测试
@RestController public class HelloController { @Autowired @Qualifier("jdbcTemplateOne") JdbcTemplate jdbcTemplateOne; @Resource(name = "jdbcTemplateTwo") JdbcTemplate jdbcTemplateTwo; @GetMapping("/user") public ListgetAllUser() { List list = jdbcTemplateOne.query("select * from t_user", new BeanPropertyRowMapper<>(User.class)); return list; } @GetMapping("/user2") public List getAllUser2() { List list = jdbcTemplateTwo.query("select * from t_user", new BeanPropertyRowMapper<>(User.class)); return list; } }