1. 配置数据库详细信息
首先,我们将配置多个数据源,在application.properties文件中提供详细信息.
1 2 3 4 5 6 7 8 9 10 11 12 13
|
spring.primary.jdbcUrl=jdbc:postgresql://localhost:5432/test spring.primary.username=postgres spring.primary.password=test spring.primary.driverClassName=org.postgresql.Driver
spring.secondary.jdbcUrl=jdbc:mysql://localhost:3306/test spring.secondary.username=root spring.secondary.password=test spring.secondary.driverClassName=com.mysql.jdbc.Driver
|
Config.java
分别创建两个数据源, 两个JdbcTemplate.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| @Bean @ConfigurationProperties(prefix = "spring.primary") public DataSource primaryDatasource() { return DataSourceBuilder.create().build(); }
@Bean @ConfigurationProperties(prefix = "spring.secondary") @Primary public DataSource secondaryDataSource() { return DataSourceBuilder.create().build(); }
@Bean public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDatasource") DataSource dataSource) { return new JdbcTemplate(dataSource); }
@Bean public JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); }
|
2. 使用jdbcTemplate
创建了两个数据源以及jdbcTemplate后, 我们就可以在任意的class中使用了.
使用之前先引入相应的jdbcTemplate. 例如
InsertController.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| @RestController public class InsertController {
@Autowired @Qualifier("primaryJdbcTemplate") JdbcTemplate posgreJdbc;
@Autowired @Qualifier("secondaryJdbcTemplate") JdbcTemplate mysqlJdbc;
@RequestMapping("/insert") public String insert(){ posgreJdbc.execute("insert into test_user(id, name,email)values(1, 'javatpoint','[email protected]')"); return"data inserted Successfully"; } }
|
3. 参考文档