使用springboot来搭建一个博客类型的网站(三)操作MySQL
前言
上篇我们讲到如何使用springboot编写一个接口返回一个写死的JSON数据,本篇我们来学习如何链接数据库,把数据库的里面的数据查找出来,并完成一个接口的编写,
在学习之前,你需要简单了解一下sql的语法
配置文件
配置文件默认位置:src/main/resources/application.properties
配置文件的书写形式比较简单,形式如下
key = value
这里我们只演示一下如何修启动端口
+++
server.port=8020
+++
使用MySQL
我们首先创建一个文章的表
CREATE TABLE `article` (
`id` int(11) NOT NULL,
`title` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
`detail` text COLLATE utf8mb4_general_ci NOT NULL,
`status` int(11) NOT NULL,
`create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
安装依赖
我们用JdbcTemplate来链接mysql数据库
我们打开项目根目录的pom.xml在标签dependencies
里面添加mysql、jdbc、druid依赖,添加完之后idea会自动根据我们新修改的pom.xml来更新依赖
<dependencies>
+++
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.14</version>
</dependency>
+++
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
修改配置文件
server.port=8020
+++
spring.datasource.url=jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Shanghai // 链接端口号后面是表数据库名称
spring.datasource.username=root // 数据库账户
spring.datasource.password=123456 // 数据库密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
+++
修改完配置文件,需要重新启动项目
新增一篇文章 @PostMapping
我们的数据库表是已经建好了,但是里面没有一条数据,接下来我们通过写一个接口来调用,往数据库里面添加一篇文章。
在controller下新建一个名为ArticleController
类
package com.semyin.blog.controller;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
@Controller
@ResponseBody
public class ArticleController {
@Resource
private JdbcTemplate jdbcTemplate;
@PostMapping("/articles")
public String addArticle() {
String sql = "INSERT INTO article(id, title, detail, status, create_time, update_time) VALUES(1, '测试标题', '我是测试内容', 1, '2022-03-24 16:53:55.63', '2022-03-24 16:53:55.63')";
int num = jdbcTemplate.update(sql);
if (num > 0) {
return "ok";
} else {
return "error";
}
}
}
修改完我们重启一下项目,打开postman请求一下这个接口
然后数据库也会新增一条字段
查询列表 @GetMapping
我们修改ArticleController,新增一个方法getArticles用来查询列表,并且返回列表
// 省略之前的代码
@GetMapping("/articles")
public Object getArticles() {
String sql = "select * from article";
return jdbcTemplate.queryForList(sql);
}
删除数据 @DeleteMapping
@DeleteMapping("/articles")
public String deleteArticle() {
String sql = "delete from article where id = 1";
int num = jdbcTemplate.update(sql);
if (num > 0) {
return "ok";
} else {
return "error";
}
}
总结
@GetMapping // 获取数据,get请求
@PostMapping // 新增数据,post请求
@DeleteMapping // 删除数据,delete请求
本篇主要学习,如何链接数据库以及使用 jdbcTemplate来操作数据库,文中的数据都是写死在代码里面的,下篇学习,如何使用jdbcTemplate来动态的操作数据库,如何获取用户提交的数据,以及如何封装统一的接口返回给用户,