返回

《Spring Boot 2.x JDBC 简介》- Spring Boot 和 JDBC 结合妙用无穷

后端

前言

在当今的软件开发领域,数据访问无疑是至关重要的一个环节。随着企业对数据的需求不断增长,数据访问也变得日益复杂。为了应对这些挑战,Spring Boot 应运而生。Spring Boot 是一个强大的 Java 框架,它简化了 Spring 应用的开发和配置过程,让开发人员可以专注于业务逻辑的实现。

Spring Boot 提供了多种数据访问技术,JDBC 就是其中之一。JDBC 是 Java Database Connectivity 的缩写,它是一种标准的 Java API,用于访问和操作数据库。Spring Boot 与 JDBC 结合,可以极大地简化数据访问的开发工作。

JDBC 简介

JDBC 是一个 Java API,它提供了对多种数据库的统一访问。JDBC 的基本思想是使用一个通用的 API 来访问不同的数据库。这意味着,开发人员只需要学习一次 JDBC API,就可以访问任何支持 JDBC 的数据库。

JDBC 的主要组件包括:

  • DriverManager: 用于管理 JDBC 驱动程序。
  • Connection: 表示与数据库的连接。
  • Statement: 用于向数据库发送 SQL 语句。
  • ResultSet: 用于存储查询结果。

JDBC 的使用非常简单。首先,需要使用 DriverManager 加载 JDBC 驱动程序。然后,就可以使用 DriverManager 创建一个 Connection 对象,该对象表示与数据库的连接。接下来,可以使用 Connection 对象创建 Statement 对象,用于向数据库发送 SQL 语句。最后,可以使用 Statement 对象的 executeQuery() 方法执行 SQL 语句,并将结果存储在 ResultSet 对象中。

Spring Boot 整合 JDBC

Spring Boot 提供了多种方式来整合 JDBC。最简单的方式是使用 Spring Boot 的自动配置功能。Spring Boot 会自动检测系统中是否存在 JDBC 驱动程序,并自动配置 JDBC 连接池。开发人员只需要在 Spring Boot 应用中添加必要的依赖即可。

例如,要使用 MySQL 数据库,需要在 Spring Boot 应用中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>

添加这些依赖后,Spring Boot 会自动配置 JDBC 连接池。开发人员只需要在 Spring Boot 应用中配置数据库连接信息即可。

JDBC 使用示例

下面是一个 JDBC 使用示例:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

@SpringBootApplication
@RestController
public class JdbcApplication {

    private final DataSource dataSource;

    public JdbcApplication(DataSource dataSource) {
        this.dataSource = dataSource;
    }

    @GetMapping("/users")
    public List<User> getAllUsers() throws SQLException {
        List<User> users = new ArrayList<>();

        try (Connection connection = dataSource.getConnection();
             Statement statement = connection.createStatement();
             ResultSet resultSet = statement.executeQuery("SELECT * FROM users")) {

            while (resultSet.next()) {
                users.add(new User(resultSet.getLong("id"), resultSet.getString("name"), resultSet.getString("email")));
            }
        }

        return users;
    }

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

这个示例使用 Spring Boot 自动配置了 JDBC 连接池。然后,通过 Spring Data JPA 注解(@Entity、@Id、@Column)将 User 类映射到 users 表。最后,通过 JPARepository 接口定义了对 users 表的 CRUD 操作。

总结

Spring Boot 与 JDBC 结合,可以极大地简化数据访问的开发工作。Spring Boot 提供了多种方式来整合 JDBC,开发人员可以根据自己的需要选择合适的方式。

JDBC 是一种标准的 Java API,它提供了对多种数据库的统一访问。JDBC 的使用非常简单,开发人员只需要学习一次 JDBC API,就可以访问任何支持 JDBC 的数据库。

附录

参考资料