落库是软件开发中的重要的事情,软件接受完成请求后,对请求的结果进行落入输入库是一件很重要的事情,而本篇文章想写出的内容就是 Springboot 连接本地的数据库的使用方案,本章文章也是入门的文章,因此篇幅可能不大。
本篇文章的主要内容有哪些呢? 连接数据库主要分为
- 启动数据库
- 设置依赖
- 连接数据库并测试 增删改查基本功能
因此文章分为下面的三部分
1. 启动数据库
本文章为了演示比较简便采用的是 docker 创建的数据库
Docker 安装很容易安装,此处不再赘述 Docker 命令如何使用将单独写出 本文章只涉及几个日常命令 docker run
, docker ps
命令如下:
docker run --platform=linux/x86_64 -p 13306:3306 -e MYSQL_ROOT_PASSWORD=test --name test -d mysql:5.7
命令释义:
--platform 设置平台的类型
-p {宿主机端口}:{容器端口}
-e 设置变量
--name 设置容器的名称
-d 后台运行
使用 docker ps
查看容器状态
image-20220102221140-yfr7uwo.png
使用数据库连接工具连接数据库,并创建数据库 person
和数据表 person
建表语句
create table person
(
id bigint(100) auto_increment
primary key,
name varchar(256) null,
constraint person_id_uindex
unique (id)
);
2. 添加依赖并设置连接信息
2.1 添加依赖
在 build.gradle
中添加如下依赖
本文采用的是最新的依赖,如果企业使用,推荐使用稳定版本
implementation 'org.springframework.data:spring-data-jpa:2.6.0'
implementation 'mysql:mysql-connector-java:8.0.25'
implementation 'org.projectlombok:lombok:1.18.20' # 为了快速开发
所在位置如下:
image-20220102223058-wx9fu9c.png 点击右上角小象标志刷新依赖
image-20220102223111-fkj8lk6.png
2.2 配置连接信息
在 resources 目录下添加 application.yml
文件并添加如下配置
spring:
datasource:
url: jdbc:mysql://localhost:13306/person
username: root
password: test
3. 测试连接数据库并测试业务逻辑
3.1 查询数据库测试
代码依次如下:
Person.java
package com.example.firstapi;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Data
@Entity
@Table(name = "person")
public class Person {
@Id
private long id;
private String name;
}
PersonRepository.java
package com.example.firstapi;
import org.springframework.data.jpa.repository.JpaRepository;
public interface PersonRepository extends JpaRepository<Person, Long> {
}
PersonService.java
package com.example.firstapi;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class PersonService {
private final PersonRepository personRepository;
public PersonService(PersonRepository personRepository) {
this.personRepository = personRepository;
}
public List<Person> getAllPerson() {
return personRepository.findAll();
}
}
PersonController.java
package com.example.firstapi;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class PersonController {
private final PersonService personService;
public PersonController(PersonService personService) {
this.personService = personService;
}
@GetMapping("/persons")
public List<Person> GetAllPerson() {
return personService.getAllPerson();
}
}
3.2 测试联通
3.2.1 启动时检测
image-20220102232110-8yizrpl.png
3.2.2 代码检测
curl --location --request GET '127.0.0.1:9090/person'
可以看到是返回空数组
我们在数据库中插入数据
SQL 如下:
INSERT INTO person.person (name)
VALUES ('xiaoming');
INSERT INTO person.person (name)
VALUES ('xiaohong');
再次请求
curl --location --request GET '127.0.0.1:9090/person'