使用Spring Boot同时连接MySQL和SQL Server

在实际的项目开发中,有时候我们需要同时连接多个数据库进行数据操作。本文将介绍如何使用Spring Boot框架来实现同时连接MySQL和SQL Server数据库,并进行简单的数据操作。

准备工作

在开始之前,我们需要准备好MySQL和SQL Server的数据库,并创建对应的表。这里我们分别创建一个名为users的表,用于存储用户信息。

MySQL数据库表结构

Field Type
id int(11)
name varchar(255)
age int(11)

SQL Server数据库表结构

Field Type
id int
name varchar(255)
age int

创建Spring Boot项目

首先,我们需要创建一个Spring Boot项目。可以通过Spring Initializr(

添加依赖

pom.xml文件中添加MySQL和SQL Server的依赖:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
</dependency>

配置数据源

application.properties文件中配置MySQL和SQL Server的数据源:

# MySQL数据源
spring.datasource.mysql.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.mysql.username=root
spring.datasource.mysql.password=root

# SQL Server数据源
spring.datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;databaseName=db_example
spring.datasource.sqlserver.username=sa
spring.datasource.sqlserver.password=Password123

创建实体类

创建一个User实体类,用于映射数据库表:

@Entity
@Table(name = "users")
public class User {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    
    private Integer age;
    
    // 省略getter和setter
}

创建Repository

创建UserRepository接口,并分别继承JpaRepository接口:

public interface UserRepositoryMySQL extends JpaRepository<User, Long> {
}
public interface UserRepositorySQLServer extends JpaRepository<User, Long> {
}

编写业务逻辑

编写一个UserService类,用于操作用户数据:

@Service
public class UserService {
    
    @Autowired
    private UserRepositoryMySQL userRepositoryMySQL;
    
    @Autowired
    private UserRepositorySQLServer userRepositorySQLServer;
    
    public List<User> getAllUsersMySQL() {
        return userRepositoryMySQL.findAll();
    }
    
    public List<User> getAllUsersSQLServer() {
        return userRepositorySQLServer.findAll();
    }
}

控制器

创建一个UserController控制器,用于处理用户请求:

@RestController
@RequestMapping("/users")
public class UserController {
    
    @Autowired
    private UserService userService;
    
    @GetMapping("/mysql")
    public List<User> getAllUsersMySQL() {
        return userService.getAllUsersMySQL();
    }
    
    @GetMapping("/sqlserver")
    public List<User> getAllUsersSQLServer() {
        return userService.getAllUsersSQLServer();
    }
}

测试

启动Spring Boot应用程序,并访问以下URL来查看数据:

  • MySQL数据:http://localhost:8080/users/mysql
  • SQL Server数据:http://localhost:8080/users/sqlserver

至此,我们已经成功实现了使用Spring Boot框架同时连接MySQL和SQL Server数据库,并进行数据操作。

总结

本文介绍了如何使用Spring Boot框架同时连接MySQL和SQL Server数据库,并实现简单的数据操作。通过配置不同的数据源和创建对应的Repository,我们可以方便地操作多个数据库。希望本文对你有所帮助!