从零开始 Spring Boot 3:数据库
上篇文章从零开始 Spring Boot 2:处理请求 - 魔芋红茶’s blog (icexmoon.cn)介绍了如何接收和处理HTTP请求,这篇文章将介绍如何连接数据库,并通过数据库来存储和读取数据。
准备工作
在介绍使用Spring Boot框架使用数据库前,需要先有一个数据库才行,这里推荐使用MySQL。其安装方式是多种多样的,我是通过XAMPP安装的,相关内容可以阅读PHP开发环境(XAMPP+XDebug+VSCode)搭建 - 魔芋红茶’s blog (icexmoon.cn)。
还推荐安装一个数据库客户端,这样操作和查看数据库更方便,对于MySQL,我一直使用的是SQLyog。可以通过下边的连接下载安装一个:
下面示例会使用一个user
表,这里给出DDL语句:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(10) NOT NULL COMMENT '姓名',
`age` int(11) NOT NULL COMMENT '年龄',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1
数据库名称我使用的是test
。
下面我们将一步步在上篇文章那个简单Web应用的基础上添加上对数据库的支持。
可以从learn_spring_boot获取上篇文章的Web应用示例代码。
数据库配置
首先我们需要在Maven配置中添加对JDBC和MySQL的支持。其中JDBC是一个在数据库驱动之上的抽象层,Java可以通过JDBC来统一地访问各种类型的数据库。因此无论是使用何种数据库,都应当添加对JDBC的支持。
<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
的配置文件application.properties
中添加数据库IP、帐号密码等相关信息:
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
我这里的密码是空,因为本地测试库没有设置密码。
Service
为了让代码更灵活,这里我们需要在实体层和Controller
之间创建一个“中间层”Service
,用于对Controller
提供基础的数据读写功能。
一些结构简单的语言,如PHP,其实会将
Service
层的代码写入Model
层。
下面是UserService
的完整代码:
package cn.icexmoon.my_first_app.service;
import cn.icexmoon.my_first_app.model.User;
import