首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
Spring Boot 简介
Spring Boot 的优点
Spring Boot 的开发环境搭建
Maven的安装和使用
Spring Boot 核心概念
Spring Boot 的自动配置
Spring Boot 的起步依赖
Spring Boot 的配置文件详解
Spring Boot 的注解详解
Spring Boot 的Web模块介绍
SpringBoot中Controller的使用
Spring Boot中的RESTful API的设计
Spring Boot中实现接收和发送JSON数据
Spring Boot实现文件上传和下载
Spring Boot与Thymeleaf模板引擎整合
Spring Boot与Vue.js整合
Spring Boot的JDBC模块详解
Spring Boot与MyBatis的整合
Spring Boot数据库事务的处理
Spring Boot数据库连接池的配置
Spring Boot的缓存模块
Spring Boot的日志管理
Spring Boot的打包和部署
当前位置:
首页>>
技术小册>>
SpringBoot零基础到实战
小册名称:SpringBoot零基础到实战
本文将介绍 Spring Boot 中的 JDBC 模块,并结合代码示例演示如何使用 JDBC 访问数据库。 **什么是JDBC?** JDBC 是 Java SE 平台的一部分,它定义了一种用于 Java 应用程序与关系型数据库进行通信的标准 API。使用 JDBC,我们可以在 Java 应用程序中执行 SQL 查询和更新,并处理数据库中的数据。 JDBC API 的核心部分是 java.sql 包。它定义了一组接口和类,用于与数据库进行通信。以下是 java.sql 包中的一些重要接口和类: DriverManager:用于获取数据库连接的工具类。 Connection:表示与数据库的连接。 Statement:用于执行 SQL 查询和更新的接口。 ResultSet:表示从数据库中检索到的结果集。 PreparedStatement:继承自 Statement 接口,提供了更好的性能和安全性,因为它使用占位符而不是字符串连接 SQL 语句。 CallableStatement:继承自 PreparedStatement 接口,用于调用存储过程。 JDBC 模块在 Spring Boot 中的作用 Spring Boot 的 JDBC 模块提供了一种方便的方式来访问关系型数据库。它提供了一组内置的数据源配置,可以与大多数关系型数据库进行交互,包括 MySQL、PostgreSQL、Oracle 和 SQL Server 等。 JDBC 模块通过自动配置和 Spring 的依赖注入机制,使得开发人员可以使用简单的 Java 类来访问数据库,而不需要编写大量的样板代码。 下面,我们将演示如何在 Spring Boot 中使用 JDBC 访问 MySQL 数据库。 **使用JDBC访问MySQL数据库** 在开始之前,我们需要确保已经安装了 MySQL 数据库,并创建了一个名为 test 的数据库。我们将使用这个数据库来演示如何使用 JDBC 访问 MySQL 数据库。 添加依赖项 我们需要添加 spring-boot-starter-jdbc 和 mysql-connector-java 依赖项来使用 JDBC 访问 MySQL 数据库。spring-boot-starter-jdbc 包含了 JDBC 相关的依赖项,而 mysql-connector-java 包含了 MySQL JDBC 驱动程序。 在 Maven 项目中,我们可以在 pom.xml 文件中添加以下依赖项: ```asp <dependencies> <!-- Spring Boot JDBC starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!-- MySQL JDBC driver --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version ``` **配置数据源** Spring Boot 的 JDBC 模块提供了一组内置的数据源配置。我们可以使用其中一个内置的数据源来访问 MySQL 数据库。 在 application.properties 文件中,我们需要配置数据源相关的属性,例如数据库的 URL、用户名和密码等。下面是一个样例配置: ```asp spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 这个配置指定了数据库的 URL、用户名和密码,以及使用的 JDBC 驱动程序。spring.datasource.driver-class-name 属性指定了 MySQL JDBC 驱动程序的类名。 **创建实体类** 在我们可以访问 MySQL 数据库之前,我们需要创建一个实体类来表示数据库表中的数据。我们可以使用 JPA(Java Persistence API)来定义实体类,或者直接使用 ResultSet 对象来映射表中的列。 下面是一个示例实体类,它表示 users 表中的数据: ```asp public class User { private Long id; private String name; private String email; // getters and setters } ``` 在实际的项目中,我们通常会使用 JPA 来定义实体类,并使用 @Entity、@Table、@Id 等注解来描述实体类与数据库表之间的映射关系。这里为了简化示例,我们使用了一个简单的 POJO 类来表示实体。 **创建 DAO(数据访问对象)** 在 Spring Boot 中,我们可以使用 JdbcTemplate 类或 NamedParameterJdbcTemplate 类来执行 SQL 查询和更新。这两个类都是 Spring JDBC 模块提供的。 JdbcTemplate 类提供了一个简单的方法来执行 SQL 查询和更新,而 NamedParameterJdbcTemplate 类提供了一种使用命名参数来构建 SQL 语句的方式。两者都可以用于执行 SQL 查询和更新。 下面是一个使用 JdbcTemplate 类来查询 users 表的示例: ```asp @Component public class UserDao { private final JdbcTemplate jdbcTemplate; public UserDao(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public List<User> findAll() { return jdbcTemplate.query("SELECT * FROM users", (resultSet, rowNum) -> { User user = new User(); user.setId(resultSet.getLong("id")); user.setName(resultSet.getString("name")); user.setEmail(resultSet.getString("email")); return user; }); } } ``` 在这个示例中,我们通过构造函数注入了一个 JdbcTemplate 对象,并使用它来查询 users 表中的所有行。jdbcTemplate.query() 方法接受两个参数:一个 SQL 查询字符串和一个 RowMapper 对象。RowMapper 接口定义了一个将结果集中的一行映射到 Java 对象的方法。在这个示例中,我们使用一个 lambda 表达式实现了 RowMapper 接口,将结果集中的每一行映射到一个 User 对象。 **数据库连接池的配置** Spring Boot通过HikariCP作为默认的数据库连接池。HikariCP是一个高性能的、轻量级的、快速启动的JDBC连接池。下面是一个使用HikariCP连接池的示例配置: ```asp spring: datasource: url: jdbc:mysql://localhost:3306/example_db username: root password: root driver-class-name: com.mysql.jdbc.Driver hikari: connection-timeout: 30000 maximum-pool-size: 10 minimum-idle: 5 pool-name: my-pool ``` 在上面的配置中,hikari节点用于指定HikariCP连接池的相关参数。connection-timeout表示连接超时时间,maximum-pool-size表示连接池的最大连接数,minimum-idle表示连接池中的最小空闲连接数,pool-name表示连接池的名称。 除了HikariCP之外,Spring Boot还支持其他几种常见的连接池,比如Tomcat JDBC连接池、DBCP连接池等。这些连接池的配置方式与HikariCP类似,只需要替换相应的依赖和配置即可。 **使用JdbcTemplate进行数据库操作** JdbcTemplate是Spring提供的一个简化JDBC开发的工具类,可以大大简化JDBC代码的编写。在Spring Boot中,默认配置了一个JdbcTemplate实例,可以直接使用。 下面是一个使用JdbcTemplate进行数据库操作的示例: ```asp @Repository public class UserRepository { private final JdbcTemplate jdbcTemplate; @Autowired public UserRepository(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public List<User> findAll() { return jdbcTemplate.query("SELECT * FROM user", new BeanPropertyRowMapper<>(User.class)); } public void save(User user) { jdbcTemplate.update("INSERT INTO user(name, age) VALUES(?, ?)", user.getName(), user.getAge()); } } ``` 在上面的代码中,通过构造函数注入了一个JdbcTemplate实例,并在方法中使用JdbcTemplate进行了数据库操作。findAll()方法使用query()方法执行查询操作,并使用BeanPropertyRowMapper将结果映射为User实例。save()方法使用update()方法执行插入操作,将参数按顺序填充到SQL语句中。 **小结** Spring Boot的JDBC模块提供了简单、易用的数据库访问方式,使得开发人员可以轻松地进行数据库操作。通过本文的介绍,我们了解了如何配置数据源、连接池以及使用JdbcTemplate进行数据库操作。这些知识点对于开发基于数据库的应用程序是非常重要的,希望本文能够对读者有所帮助。
上一篇:
Spring Boot与Vue.js整合
下一篇:
Spring Boot与MyBatis的整合
该分类下的相关小册推荐:
深入拆解 Java 虚拟机
SpringBoot合辑-初级篇
Java语言基础15-单元测试和日志技术
Mybatis合辑2-Mybatis映射文件
JAVA 函数式编程入门与实践
Java语言基础3-流程控制
Java语言基础2-运算符
Java语言基础4-数组详解
手把手带你学习SpringBoot-零基础到实战
Mybatis合辑4-Mybatis缓存机制
Java并发编程
Java语言基础7-Java中的异常