如何使用 Spring 连接 SQL Server 和 MySQL

在现代企业级应用中,数据库的选择往往不仅限于单一种类,Spring 框架允许我们方便地连接多种类型的数据库,例如 SQL Server 和 MySQL。本文将详细介绍如何利用 Spring 框架连接这两种数据库,帮助刚入行的小白快速上手。

流程概述

连接 SQL Server 和 MySQL 的总体流程如下表所示:

步骤 描述
1 添加依赖
2 配置数据源
3 创建实体类
4 创建数据库访问接口
5 实现数据库访问逻辑
6 启动 Spring Boot 应用

接下来,我们将逐步解释每一个步骤。

步骤详解

1. 添加依赖

在项目的配置文件中添加所需的 JDBC 驱动和 Spring 数据库相关依赖。如果你正在使用 Maven,可以在 pom.xml 中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>9.4.0.jre8</version> <!-- SQL Server JDBC 驱动 -->
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.26</version> <!-- MySQL JDBC 驱动 -->
</dependency>

2. 配置数据源

application.properties 文件中配置 SQL Server 和 MySQL 的连接信息:

# SQL Server 数据源配置
spring.datasource.sqlserver.url=jdbc:sqlserver://localhost:1433;databaseName=yourDatabaseName
spring.datasource.sqlserver.username=yourUsername
spring.datasource.sqlserver.password=yourPassword
spring.datasource.sqlserver.driver-class-name=com.microsoft.sqlserver.jdbc.SQLServerDriver

# MySQL 数据源配置
spring.datasource.mysql.url=jdbc:mysql://localhost:3306/yourDatabaseName
spring.datasource.mysql.username=yourUsername
spring.datasource.mysql.password=yourPassword
spring.datasource.mysql.driver-class-name=com.mysql.cj.jdbc.Driver

# JPA 配置
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

3. 创建实体类

为每个数据库表创建一个 Java 实体类,可以使用 JPA 注解进行描述。以下是 SQL Server 和 MySQL 中的示例实体类:

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

@Entity
@Table(name = "example_table")
public class ExampleEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    // Getters and Setters
}

4. 创建数据库访问接口

接下来,我们需要为每个数据源创建一个 Repository 接口。这些接口将用于 CRUD 操作。

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface SqlServerRepository extends JpaRepository<ExampleEntity, Long> {
    // 这里可以添加自定义查询方法
}

@Repository
public interface MySqlRepository extends JpaRepository<ExampleEntity, Long> {
    // 这里可以添加自定义查询方法
}

5. 实现数据库访问逻辑

在服务层,我们需要注入刚才创建的 Repository,并实现访问逻辑。

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

import java.util.List;

@Service
public class ExampleService {

    @Autowired
    private SqlServerRepository sqlServerRepository;

    @Autowired
    private MySqlRepository mySqlRepository;

    public List<ExampleEntity> getAllFromSqlServer() {
        return sqlServerRepository.findAll();
    }

    public List<ExampleEntity> getAllFromMySQL() {
        return mySqlRepository.findAll();
    }

    // 其他逻辑...
}

6. 启动 Spring Boot 应用

最后,确保 Spring Boot 应用启动正常。执行 main 方法:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

状态图

我们可以使用 Mermaid 语法描述应用的状态图,帮助理解各个步骤的流转。

stateDiagram
    [*] --> 添加依赖
    添加依赖 --> 配置数据源
    配置数据源 --> 创建实体类
    创建实体类 --> 创建数据库访问接口
    创建数据库访问接口 --> 实现数据库访问逻辑
    实现数据库访问逻辑 --> 启动 Spring Boot 应用
    启动 Spring Boot 应用 --> [*]

结论

通过本文的讲解,相信你已经对如何在 Spring 中连接 SQL Server 和 MySQL 有了基本的理解。每一步都至关重要,从添加依赖到配置数据源,再到实现访问逻辑,缺一不可。掌握这些技能后,你可以在实际项目中自如地操作不同的数据库,为你的开发工作增添便利。

如有任何疑问,请随时在学习过程中寻求帮助,祝你编程快乐!