springboot-整合-mybatisplus-连接数据库
springboot 整合 mybatisplus 连接数据库
目录
前言
本案例在 IDEA 中建一个 springboot 项目 结合 mybatisplus 来连接数据,并打印数据表中的信息;并介绍 springboot 中的三层架构
一、springboot 中的三层架构
首先我们来简单了解 springboot 中的三层架构,以及它们之间的联系
三层主要是指: 表现层 、 业务层 、 数据持久层
- 表现层:负责接受用户的数据请求、转发请求或生成数据的试图等,就是直观的展示给用户看的页面,如浏览器,用户通过页面输入、查询就可得到需要的数据
- 业务层:也叫业务逻辑层,是针对具体问题的具体操作,主要是从数据库中得到数据,然后对数据进行逻辑处理,返回处理的结果到表现层
- 数据持久层:该层直接操作数据库,对数据进行增删改查等具体操作,负责持久化业务对象
文字描述过于抽象,直接看图
在 springboot 项目中 常分几个包来存放不同的代码。
- Mapper 层 :也是 DAO(Data Access Object) 层;是数据库CRUD(Create、Read、Update、Delete)的接口,包含了对数据库进行数据持久化操作的方法,如增删改查等基本操作。一般存放接口的代码
- Controller 层 :为控制层,一般使用 @RestController 或 @Controller 注解来标识,负责接收请求并将请求转发到相应的服务层进行处理,同时将处理结果返回给客户端
- Service 层 :为业务处理层,一般使用 @Service 注解来标识。负责实现业务的处理
- Entity 层 :实体类层,存放实体类,一般使用 @Entity 注解来标识。负责表示具体的数据模型。这些模型映射到数据库中的表结构
- Config 层 :配置层,一般用于存放配置信息,一般使用 @Configuration 注解来标识
- Utils 层 :工具类层,可存放自定义的工具类,并使用 @Component 注解将其注入到系统中
二、springboot 项目创建
首先在IDEA中下载几个必要的插件
然后在IDEA中新建springboot 项目,如图
JDK8(也叫JDK1.8)可自行在网上下载安装
点击下一步,再去下载必要的依赖项
等待依赖项下好就可以进入到项目中了
三、配置 mybatisplus
3.1介绍mybatisplus
mybatisplus 的官网:https://www.baomidou.com
简介: 是一个 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
功能:
- 无侵入 :
- 损耗小 :
- 强大的 CRUD 操作 :
- 支持 Lambda 形式调用 :
- 支持主键自动生成 :
- 支持 ActiveRecord 模式 :
- 支持自定义全局通用操作 :
- 内置代码生成器 :
- 内置分页插件 :
- 分页插件支持多种数据库 :
- 内置性能分析插件 :
- 内置全局拦截插件 :
详细见官方文档
3.2 在 springboot 中配置 mybatisplus
首先在我们的项目文件中找到 pom.xml 文件(显示maven图标的文件),添加依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.6</version>
</dependency>
该依赖在官网中有
3.3 配置数据库
在resource 文件中新建一个.yml 文件来进行数据库的连接
在建立的application.yml 文件中输入如下代码:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/cs?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
username: root
password: 123456
如图:
然后打开 navicat 工具 ,建立一个名为cs的数据库,在该数据库中创建一张表,并在表中填写数据
数据填写可自行填写,这里我不再展示。保存的表名命名为user
ps:建立数据库时,字符集和排序规则建议如下图
3.4防全表更新与删除插件
功能特性:
- 阻止全表更新删除 :插件能够识别并阻止没有指定条件的
update
和delete
语句,这些语句可能会导致全表数据被修改或删除。- 保护数据安全 :通过限制全表操作,减少因误操作或恶意攻击导致的数据丢失风险。
首先在com.example.cs 目录下建立一个config 包,在该包中建立一个类,然后在官网中把该插件的代码拷贝过来,放在MybatisPlusConfig 文件下
官网的代码
在导入的时候会出现爆红,需要我们手动添加导入项,可以在爆红的地方把鼠标光标定位在那,然后按住alt+enter键进行导入
3.5 编写各代码层对应代码
3.5.1 entity 层
在该层编写实体类 ,如下:
使用
@Data
注解可以自动为类的字段生成getter、setter、equals、canEqual、hashCode和toString方法。
3.5.2 mapper 层
在mapper 建立UserMapper 接口
BaseMapper是MyBatis Plus提供的一个接口,用于快速实现常见的数据库操作,如插入、更新、删除和查询等
3.5.3 controller 层
在controller 层建立测试类:TestController
然后我们在该类中写测试代码。
1.添加@RestController注解
度娘解释 : @RestController
是一个结合了@Controller
和@ResponseBody
的注解,在Spring Boot中用于创建RESTful接口。@RestController
注解告知Spring容器,被这个注解标注的类是一个控制器,并且这个控制器的所有方法返回的数据都会自动以JSON或XML格式(转换为资源并通过HTTP响应返回。
2.添加@Autowired注解
@Autowired注解可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。
3.添加@GetMapping注解
用于标识一个方法映射到HTTP GET请求,后接访问的路径
依次对这些注解进行导入(alt+enter)
list方法返回一个User的列表,userMapper.selectList:对数据库操作
3.6 启动
找到启动类进行启动,一般是xxxApplication文件
出现下面页面表示运行成功
找到application.properties文件查看端口号
然后在浏览器中输入 localhost:8080/test 回车即可看到数据库表信息
四、测试
在数据库中插入两条数据
然后在重新运行项目,再进入刷新网页,可以看到多了两条数据
总结
可建立Service层,实现更多的业务操作,如增删改查功能,该篇文章只用于springboot整合Mybatisplus 连接数据库快速入门。在实现该案例时也出现了很多的问题,不过后面查了很多资料终于解决了,后面感觉所有地方都没问题还是启动不了时,当我百思不得其解时,才发现我访问的是localhost:8080而不是localhost:8080/test
最后每篇一言: 拉满香蕉我无法刹车,放下香蕉我无法生活
——奥德彪
(奥德彪:“都是他们瞎扯的,我可没说”)