Spring Boot配置MySQL和Sql Server

在开发过程中,经常会遇到需要同时连接MySQL和Sql Server数据库的情况。Spring Boot提供了简单而强大的方法来配置和管理多个数据源,使得连接多个数据库变得更加容易。本文将介绍如何在Spring Boot应用程序中同时配置MySQL和Sql Server,并提供代码示例。

准备工作

在开始之前,我们需要准备以下内容:

  1. JDK:确保已安装Java Development Kit(JDK)。
  2. Spring Boot:确保已安装Spring Boot。可以从官方网站( Boot。
  3. 数据库:确保已安装并配置好MySQL和Sql Server数据库。

添加依赖

首先,我们需要在Spring Boot项目的pom.xml文件中添加相应的依赖。

<!-- MySQL依赖 -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
</dependency>

<!-- Sql Server依赖 -->
<dependency>
  <groupId>com.microsoft.sqlserver</groupId>
  <artifactId>mssql-jdbc</artifactId>
</dependency>

配置数据源

接下来,我们需要在application.propertiesapplication.yml文件中配置数据源。

MySQL配置

spring.datasource.mysql.url=jdbc:mysql://localhost:3306/db_name
spring.datasource.mysql.username=username
spring.datasource.mysql.password=password
spring.datasource.mysql.driver-class-name=com.mysql.cj.jdbc.Driver

Sql Server配置

spring.datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;databaseName=db_name
spring.datasource.sqlserver.username=username
spring.datasource.sqlserver.password=password
spring.datasource.sqlserver.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

创建实体类和数据访问层

我们需要创建实体类和数据访问层(Repository)来操作数据库。

实体类

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
  
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
  
  private String name;
  
  // getters and setters
  
}

数据访问层

MySQL数据访问层
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepositoryMySQL extends JpaRepository<User, Long> {
}
Sql Server数据访问层
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepositorySqlServer extends JpaRepository<User, Long> {
}

编写业务逻辑

创建一个包含业务逻辑的Service类,以便调用数据访问层。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {

  @Autowired
  private UserRepositoryMySQL userRepositoryMySQL;
  
  @Autowired
  private UserRepositorySqlServer userRepositorySqlServer;
  
  public List<User> getAllUsersFromMySQL() {
    return userRepositoryMySQL.findAll();
  }
  
  public List<User> getAllUsersFromSqlServer() {
    return userRepositorySqlServer.findAll();
  }
  
  // 其他业务方法
  
}

使用数据源

最后,我们可以在Controller中使用数据源来处理请求。

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/users")
public class UserController {

  @Autowired
  private UserService userService;
  
  @GetMapping("/mysql")
  public List<User> getAllUsersFromMySQL() {
    return userService.getAllUsersFromMySQL();
  }
  
  @GetMapping("/sqlserver")
  public List<User> getAllUsersFromSqlServer() {
    return userService.getAllUsersFromSqlServer();
  }
  
  // 其他请求处理方法
  
}

现在,我们可以启动Spring Boot应用程序,并访问以下URL来获取MySQL和Sql Server中的用户数据:

  • http://localhost:8080/users/mysql
  • http://localhost:8080/users/sqlserver

总结

通过使用Spring Boot,我们可以轻松地配置和管理多个数据源。本文介绍了如何在Spring Boot应用程序中同时配置MySQL和Sql Server,并提供了代码示例。希望本文能帮助你成功配置多个数据库并连接到Spring Boot应用程序中。