记录:414
场景:使用JdbcTemplate和dynamic-datasource-spring-boot-starter动态切换数据源操作数据库。
版本:JDK 1.8,Spring Boot 2.6.3,dynamic-datasource-spring-boot-starter-3.3.2。
源码:https://github.com/baomidou/dynamic-datasource-spring-boot-starter
dynamic-datasource-spring-boot-starter:一个基于springboot的快速集成多数据源的启动器。
1.动态数据源注解@DS作用在类上
1.1类GetDataDao
@DS("hub_a_db")
@Repository
public class GetDataDao {
@Autowired
private JdbcTemplate jt;
public List<Map<String, Object>> getData() {
String selectSQL = "SELECT CITY_ID,CITY_NAME,LAND_AREA,POPULATION, " +
" GROSS,CITY_DESCRIBE,DATA_YEAR,UPDATE_TIME " +
"FROM t_city ";
List<Map<String, Object>> data = jt.queryForList(selectSQL);
return data;
}
}
1.2类InsertDataDao
@DS("hub_b_db")
@Repository
public class InsertDataDao {
@Autowired
private JdbcTemplate jt;
public void insertData(List<Map<String, Object>> data) {
String insertSQL = "INSERT INTO t_city (\n" +
" CITY_ID,CITY_NAME,LAND_AREA,POPULATION,\n" +
" GROSS,CITY_DESCRIBE,DATA_YEAR,UPDATE_TIME)\n" +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
jt.batchUpdate(insertSQL, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedS

本文介绍了如何使用JdbcTemplate和dynamic-datasource-spring-boot-starter库在SpringBoot应用中实现动态数据源切换。通过@DS注解在类或方法级别指定数据源,以及利用DynamicDataSourceContextHolder在运行时切换数据源,实现了对多个数据库的读写操作。示例代码展示了数据查询和插入的示例,并提供了配置动态数据源的步骤。
最低0.47元/天 解锁文章
1144

被折叠的 条评论
为什么被折叠?



