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