惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
罗磊的独立博客
博客园 - 聂微东
博客园_首页
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
Jina AI
Jina AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
D
DataBreaches.Net
The GitHub Blog
The GitHub Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
量子位
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
月光博客
月光博客
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News
H
Help Net Security
O
OpenAI News
Blog — PlanetScale
Blog — PlanetScale
S
Security Affairs
S
Security @ Cisco Blogs
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
AI
AI
MongoDB | Blog
MongoDB | Blog
G
Google Developers Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
Cloudbric
Cloudbric
H
Heimdal Security Blog
J
Java Code Geeks
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
爱范儿
爱范儿
I
Intezer
GbyAI
GbyAI

Li Hui Blog

工作流调研与实践经验 如何搭建私有仓库 Nexus 并配置 SSL 证书 从零开始搭建单节点 ELK 浅谈一个产品的用户引导 归档 GoCD 加入基础密码验证 搭建一套 gocd 的环境 如何使用 gitbook cli工具 React JSX语法再实践 React 组件示例 如何搭建第一个 React 程序 [SpringBoot 指南] 如何开始 Springboot 之旅 实现自己第一个接口 LeetCode刷题笔记 VPC笔记 读书的目的 [人文书籍] 把时间当作朋友 Docker基础命令 [技术书籍]JSON必知必会 Docker原理研究 使用Ubuntu 及宝塔搭建Ghost平台 [Linux]Ubuntu安装宝塔面板 2020年年终总结 CURL学习教程 2020年度计划记录 [安全系列]生成ssh证书 [CLI应用学习]时间使用GitHub CLI [linux系列] 修改主机用户名 轻松学CLI应用总章节 [Shell编程系列]基础教程2 [Shell编程系列]基础教程1 [安全相关]使用腾讯云子账号提高账号安全性 [Git教程系列]基础教程5 解决修改错分支的问题 [博客优化]为Wordpress加入伪静态 2020年的12本书籍 [Git系列教程]基本使用4 Git log的使用 [Git系列教程]Git基础操作3 [Git教程系列]基础操作2 [Git教程系列]Git初次配置 [周年总结]脉脉深情,深思志远,周年总结计划 [博客优化]为网站添加SSL证书 [博客优化]Wordpress加入redis服务器提高速度 开篇词 Posts Archive Li Hui Blog
[SpringBoot 指南] 连接 mysql 数据库并进行增删改查测试
2022-01-02 · via Li Hui Blog

落库是软件开发中的重要的事情,软件接受完成请求后,对请求的结果进行落入输入库是一件很重要的事情,而本篇文章想写出的内容就是 Springboot 连接本地的数据库的使用方案,本章文章也是入门的文章,因此篇幅可能不大。

本篇文章的主要内容有哪些呢? 连接数据库主要分为

  1. 启动数据库
  2. 设置依赖
  3. 连接数据库并测试 增删改查基本功能

因此文章分为下面的三部分

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'