用springboot 同步mysql 和SQL server两个数据库的代码可以写给我吗
时间: 2024-05-09 18:21:33 浏览: 11
以下是使用Spring Boot同步MySQL和SQL Server数据库的代码示例:
首先,我们需要在pom.xml文件中添加相应的依赖:
```xml
<dependencies>
<!-- MySQL Connector -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- SQL Server Connector -->
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>9.4.0.jre11</version>
</dependency>
<!-- Spring Boot Starter JDBC -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>2.5.5</version>
</dependency>
</dependencies>
```
接下来,我们需要在application.properties文件中配置MySQL和SQL Server数据库的连接信息:
```properties
# MySQL database connection settings
spring.datasource.url=jdbc:mysql://localhost:3306/mysql_db
spring.datasource.username=root
spring.datasource.password=root
# SQL Server database connection settings
spring.sqlserver.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=sqlserver_db
spring.sqlserver.datasource.username=sa
spring.sqlserver.datasource.password=sa
```
然后,我们需要编写一个同步服务的类,该类将从MySQL数据库中获取数据并将其同步到SQL Server数据库中:
```java
@Service
public class DataSyncService {
@Autowired
private JdbcTemplate mysqlJdbcTemplate;
@Autowired
@Qualifier("sqlServerJdbcTemplate")
private JdbcTemplate sqlServerJdbcTemplate;
public void syncData() {
// Retrieve data from MySQL database
List<Map<String, Object>> data = mysqlJdbcTemplate.queryForList("SELECT * FROM users");
// Insert data into SQL Server database
for (Map<String, Object> row : data) {
sqlServerJdbcTemplate.update("INSERT INTO users (id, name, email) VALUES (?, ?, ?)",
row.get("id"), row.get("name"), row.get("email"));
}
}
}
```
最后,我们需要在应用程序的主类中创建两个JdbcTemplate实例并将它们注入到DataSyncService中:
```java
@SpringBootApplication
public class Application {
@Autowired
private DataSource mysqlDataSource;
@Value("${spring.sqlserver.datasource.url}")
private String sqlServerUrl;
@Value("${spring.sqlserver.datasource.username}")
private String sqlServerUsername;
@Value("${spring.sqlserver.datasource.password}")
private String sqlServerPassword;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public JdbcTemplate mysqlJdbcTemplate() {
return new JdbcTemplate(mysqlDataSource);
}
@Bean(name = "sqlServerJdbcTemplate")
public JdbcTemplate sqlServerJdbcTemplate() {
return new JdbcTemplate(sqlServerDataSource());
}
private DataSource sqlServerDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
dataSource.setUrl(sqlServerUrl);
dataSource.setUsername(sqlServerUsername);
dataSource.setPassword(sqlServerPassword);
return dataSource;
}
}
```
现在,我们可以在任何需要同步数据的地方调用DataSyncService的syncData()方法来同步MySQL和SQL Server数据库中的数据了。