用微信开发者工具 springboot mysql 写出一个方法可以把一个数据库里的数据添加到另一个数据库里
时间: 2024-03-18 10:38:30 浏览: 124
好的,可以使用 Spring Boot 和 MySQL 数据库来实现这个功能。以下是一个实现的参考代码:
首先,在 `application.properties` 文件中配置两个数据库的连接信息:
```properties
# 源数据库连接信息
source.datasource.url=jdbc:mysql://localhost:3306/source_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
source.datasource.username=root
source.datasource.password=root
# 目标数据库连接信息
target.datasource.url=jdbc:mysql://localhost:3306/target_db?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
target.datasource.username=root
target.datasource.password=root
```
然后,创建两个数据源和两个 JdbcTemplate 对象:
```java
@Configuration
public class DataSourceConfig {
@Bean(name = "sourceDataSource")
@ConfigurationProperties(prefix = "source.datasource")
public DataSource dataSource1() {
return DataSourceBuilder.create().build();
}
@Bean(name = "sourceJdbcTemplate")
public JdbcTemplate jdbcTemplate1(@Qualifier("sourceDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "targetDataSource")
@ConfigurationProperties(prefix = "target.datasource")
public DataSource dataSource2() {
return DataSourceBuilder.create().build();
}
@Bean(name = "targetJdbcTemplate")
public JdbcTemplate jdbcTemplate2(@Qualifier("targetDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
```
接下来,编写一个方法来将源数据库中的数据添加到目标数据库中:
```java
@Service
public class DataService {
@Autowired
@Qualifier("sourceJdbcTemplate")
private JdbcTemplate sourceJdbcTemplate;
@Autowired
@Qualifier("targetJdbcTemplate")
private JdbcTemplate targetJdbcTemplate;
public void addData() {
// 从源数据库中获取数据
String sql = "SELECT * FROM users";
List<Map<String, Object>> dataList = sourceJdbcTemplate.queryForList(sql);
// 将数据添加到目标数据库中
for (Map<String, Object> data : dataList) {
String insertSql = "INSERT INTO new_users (id, name, age) VALUES (?, ?, ?)";
int id = (int) data.get("id");
String name = (String) data.get("name");
int age = (int) data.get("age");
targetJdbcTemplate.update(insertSql, id, name, age);
}
}
}
```
在该方法中,我们首先使用 `sourceJdbcTemplate` 从源数据库中获取数据,然后使用 `targetJdbcTemplate` 将数据添加到目标数据库中。
注意,需要根据源数据的字段和目标表的字段对应关系,编写正确的插入语句。
最后,在控制器中调用该方法即可实现将数据从源数据库添加到目标数据库的功能。
```java
@RestController
public class DataController {
@Autowired
private DataService dataService;
@GetMapping("/addData")
public String addData() {
try {
dataService.addData();
return "添加成功";
} catch (Exception e) {
e.printStackTrace();
return "添加失败:" + e.getMessage();
}
}
}
```
以上是一个简单的实现方法,但是需要注意的是,在实际开发中,可能需要考虑数据量、数据类型、数据完整性等诸多因素,需要谨慎操作。
阅读全文