快速搭建Springboot进行CRUD
如果你想要
- 需要快速搭建个后台进行增删改查,而暂时不想要系统学习Spring框架
- 前端开发想要更好的模拟后端数据的返回
- 大学生期末大作业的后台CRUD
通过学习此文,你可以
- 快速搭建Springboot进行CRUD
为什么选择Springboot
- 传统SSM需要通过一些配置才能跑起来,而Springboot几乎开箱即用
前期准备
需要掌握的知识
- Java语言
- mysql
安装的环境和工具(可自行替换)
- IntelliJ IDEA 2019.3.3
- mysql 5.7
- navicat
项目初始化
新建项目
1.新建项目,选择Spring InitializrJDK选择 1.8,默认创建方式,然后点击Next

2.Java Version选8,其他可以默认,点击Next

3.选择依赖(按下方选择),选择完成可以看到右边的选择列表,然后点击Next
- Web
- Spring Web
- Template Engines
- Thymeleaf
- SQL
- JDBC API
- MySQl Driver
- Mybatis Framework

4.点击finish

5.如果有以下询问,点击new window

6.打开项目后,点击右下角
- Enable Auto Import
- 自动导入依赖

配置数据库
1.用navicat新建数据库mybatisdb,并新建一张表user

2.修改配置文件

- 数据库名称对应上面数据库名称
- url:jdbc:mysql://localhost:3306/数据库名称?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
- 用户名和密码修改为你自己的
1 | #数据库名称 |
启动项目
在项目启动类中添加一句数据,点击运行后就可以看到项目已经可以跑起来了!
1 | System.out.println("SpringBoot Start"); |

CRUD
准备工作
1.在demo下新建几个包
- controller:处理事务,处理请求和响应
- mapper:操作数据库
- 编写SQL语句,对数据库进行增删查改
- model:对象模型
- 数据库user表有name和age字段,则该包中就可以有一个类User,有name和age属性
- service:编写业务代码
- utils:工具包,存放通用代码

模型
模型对象数据库中的表
- get、set快捷键
- 生成一个属性的get和set:在该行后面alt+enter
- 若电脑delete键与insert键是共用一键,则使用fn+alt+insert
- 生成多个属性的get和set:alt+insert
- 生成一个属性的get和set:在该行后面alt+enter
在model新建User类
使用
@Entity标签来说明它是一个实体类使用
@Table(name = "students")标签将实体类与数据库中的表进行映射
1 |
|

映射层
有两种写sql语句的方法(二选一即可)
1.通过注释
1 | public interface UserMapper { |
2.通过配置文件写sql
修改全局配置application.properties,新增以下内容
- 配置映射文件
- 该路径为配置文件路径,即存放sql语句的路径
- 配置实体类
- 该路径需要修改为你自己的包路径
配置映射文件和实体类一一映射
1 | #mybatis配置 |
在mapper新建UserMapper接口
1 | public interface UserMapper { |
在resources下新建mapper文件夹,在该文件夹中新建UserMapper.xml
- UserMapper.xml的命名需要与mapper中映射的类对应
1 |
|
编写sql语句后最好先测试一下是否达到预期

2.
注入mapper
在SpringBoot中集成MyBatis,可以在mapper接口上添加@Mapper注解,将mapper注入到Spring。
- 但是如果每一给mapper都添加@mapper注解会很麻烦
- 可以使用@MapperScan注解来扫描包
新增注解:@MapperScan(“com.ehxie.demo.mapper”)
1 |
|
服务层
在service新建UserService接口
- 接口定义规范
1 | // ... |
为接口做实现
- 在service中新建impl包
- 在impl包中新建
UserService接口的实现类UserServiceImpl
该类需要注释:@Service
自动导入Bean:@Autowired
1 |
|

控制层
在controller新建UserController接口
需要添加注释:@Controller
映射路径注释:@RequestMapping(value = “/user”)
- 代表访问该类路径为:协议:主机:端口/user,如果为默认即http://localhost:8080/user
需要将服务层对象注入:@Autowired
1 |
|
启动项目,访问http://localhost:8080/user/getAll

pom
一些比较常用的依赖
- JSON格式化
1 | <!-- 将实体对象转换为JSON对象 --> |
- 生成唯一key需要导入的包
- @Id注解
- @GeneratedValue(strategy = GenerationType.IDENTITY)
1 | <!-- https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api --> |
数据库操作
对数据库的CRUD实际上就是在写mapper
修改下数据库的user表

1 | CREATE TABLE `user` ( |
修改model下的User
- @Id 标注用于声明一个实体类的属性映射为数据库的主键列
- @GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。
- 默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。
- 在javax.persistence.GenerationType中定义了以下几种可供选择的策略:
–IDENTITY:采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式;
–AUTO: JPA自动选择合适的策略,是默认选项;
–SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式
–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。
1 | public class User { |