目录

springboot-整合-mybatisplus-连接数据库

springboot 整合 mybatisplus 连接数据库

目录


前言

本案例在 IDEA 中建一个 springboot 项目 结合 mybatisplus 来连接数据,并打印数据表中的信息;并介绍 springboot 中的三层架构

一、springboot 中的三层架构

首先我们来简单了解 springboot 中的三层架构,以及它们之间的联系

三层主要是指: 表现层 、 业务层 、 数据持久层

  • 表现层:负责接受用户的数据请求、转发请求或生成数据的试图等,就是直观的展示给用户看的页面,如浏览器,用户通过页面输入、查询就可得到需要的数据
  • 业务层:也叫业务逻辑层,是针对具体问题的具体操作,主要是从数据库中得到数据,然后对数据进行逻辑处理,返回处理的结果到表现层
  • 数据持久层:该层直接操作数据库,对数据进行增删改查等具体操作,负责持久化业务对象

文字描述过于抽象,直接看图

https://i-blog.csdnimg.cn/blog_migrate/d6ca1c1efd04361710fe3bb54ba0d6ad.png

在 springboot 项目中 常分几个包来存放不同的代码。

  • Mapper 层 :也是 DAO(Data Access Object) 层;是数据库CRUD(Create、Read、Update、Delete)的接口,包含了对数据库进行数据持久化操作的方法,如增删改查等基本操作。一般存放接口的代码
  • Controller 层 :为控制层,一般使用 @RestController 或 @Controller 注解来标识,负责接收请求并将请求转发到相应的服务层进行处理,同时将处理结果返回给客户端
  • Service 层 :为业务处理层,一般使用 @Service 注解来标识。负责实现业务的处理
  • Entity 层 :实体类层,存放实体类,一般使用 @Entity 注解来标识。负责表示具体的数据模型。这些模型映射到数据库中的表结构
  • Config 层 :配置层,一般用于存放配置信息,一般使用 @Configuration 注解来标识
  • Utils 层 :工具类层,可存放自定义的工具类,并使用 @Component 注解将其注入到系统中

二、springboot 项目创建

首先在IDEA中下载几个必要的插件

https://i-blog.csdnimg.cn/blog_migrate/5f73bcc59c581cbf71af1eb92f72f698.png

然后在IDEA中新建springboot 项目,如图

JDK8(也叫JDK1.8)可自行在网上下载安装

https://i-blog.csdnimg.cn/blog_migrate/49ee5b2f99b2d8c83a85866ec1c32b49.png

点击下一步,再去下载必要的依赖项

https://i-blog.csdnimg.cn/blog_migrate/402dd1f2acc63a5b82920515548d70b2.png

等待依赖项下好就可以进入到项目中了

三、配置 mybatisplus

3.1介绍mybatisplus

mybatisplus 的官网:https://www.baomidou.com

简介: 是一个 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

功能:

  • 无侵入
  • 损耗小
  • 强大的 CRUD 操作
  • 支持 Lambda 形式调用
  • 支持主键自动生成
  • 支持 ActiveRecord 模式
  • 支持自定义全局通用操作
  • 内置代码生成器
  • 内置分页插件
  • 分页插件支持多种数据库
  • 内置性能分析插件
  • 内置全局拦截插件

详细见官方文档

3.2 在 springboot 中配置 mybatisplus

首先在我们的项目文件中找到 pom.xml 文件(显示maven图标的文件),添加依赖

https://i-blog.csdnimg.cn/blog_migrate/5d7affbef952e8732cba2955ba17d5be.png

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.6</version>
</dependency>

该依赖在官网中有

3.3 配置数据库

在resource 文件中新建一个.yml 文件来进行数据库的连接

https://i-blog.csdnimg.cn/blog_migrate/e0cdf9d95974a8c203a812be6cf563c4.png

在建立的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

如图:

https://i-blog.csdnimg.cn/blog_migrate/d7db721fd6aed73cbe6549e2752549ab.png

然后打开 navicat 工具 ,建立一个名为cs的数据库,在该数据库中创建一张表,并在表中填写数据

https://i-blog.csdnimg.cn/blog_migrate/53eaf373c57af078a7b8e86a81dd5773.png

数据填写可自行填写,这里我不再展示。保存的表名命名为user

ps:建立数据库时,字符集和排序规则建议如下图

https://i-blog.csdnimg.cn/blog_migrate/b17117c03ee7021f4d3d3f83e6638d4b.png

3.4防全表更新与删除插件

功能特性:

  • 阻止全表更新删除 :插件能够识别并阻止没有指定条件的 updatedelete 语句,这些语句可能会导致全表数据被修改或删除。
  • 保护数据安全 :通过限制全表操作,减少因误操作或恶意攻击导致的数据丢失风险。

首先在com.example.cs 目录下建立一个config 包,在该包中建立一个类,然后在官网中把该插件的代码拷贝过来,放在MybatisPlusConfig 文件下

https://i-blog.csdnimg.cn/blog_migrate/5ab5a2bf50e5dd5a0da6b8c82491d062.png

官网的代码

https://i-blog.csdnimg.cn/blog_migrate/6fc9ff64e5cd3d3df484af404e57c2db.png

在导入的时候会出现爆红,需要我们手动添加导入项,可以在爆红的地方把鼠标光标定位在那,然后按住alt+enter键进行导入

https://i-blog.csdnimg.cn/blog_migrate/9a80d7e882f2b0abe2900f58d48e0966.png

https://i-blog.csdnimg.cn/blog_migrate/b45be3fa51cd90d5a5c7d05bd6d5dcb6.png

3.5 编写各代码层对应代码

3.5.1 entity 层

在该层编写实体类 ,如下:

https://i-blog.csdnimg.cn/blog_migrate/137964bfcfff83f9fca15a86a88d35de.png

使用 @Data 注解可以自动为类的字段生成getter、setter、equals、canEqual、hashCode和toString方法。

3.5.2 mapper 层

在mapper 建立UserMapper 接口

https://i-blog.csdnimg.cn/blog_migrate/8d85cb662fa6b93b89605d29508bc888.png

BaseMapper是MyBatis Plus提供的一个接口,用于快速实现常见的数据库操作,如插入、更新、删除和查询等

3.5.3 controller 层

在controller 层建立测试类:TestController

https://i-blog.csdnimg.cn/blog_migrate/1283a9acac25426dab928560fd6a8a81.png

然后我们在该类中写测试代码。

1.添加@RestController注解

度娘解释 : @RestController 是一个结合了 @Controller@ResponseBody 的注解,在Spring Boot中用于创建RESTful接口。 @RestController 注解告知Spring容器,被这个注解标注的类是一个控制器,并且这个控制器的所有方法返回的数据都会自动以JSON或XML格式(转换为资源并通过HTTP响应返回。

2.添加@Autowired注解

@Autowired注解可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。

3.添加@GetMapping注解

用于标识一个方法映射到HTTP GET请求,后接访问的路径

依次对这些注解进行导入(alt+enter)

https://i-blog.csdnimg.cn/blog_migrate/f84e47f60e383da1c5c9eb743d253308.png

list方法返回一个User的列表,userMapper.selectList:对数据库操作

3.6 启动

找到启动类进行启动,一般是xxxApplication文件

https://i-blog.csdnimg.cn/blog_migrate/85857ee348cf1e0dadd85d635fc3c488.png

出现下面页面表示运行成功

https://i-blog.csdnimg.cn/blog_migrate/ffbf30ed39cd2f11cca66e3c160a091a.png

找到application.properties文件查看端口号

https://i-blog.csdnimg.cn/blog_migrate/16db44da2c0ad1f0932a4edbf977e9bf.png

然后在浏览器中输入 localhost:8080/test 回车即可看到数据库表信息

四、测试

在数据库中插入两条数据

https://i-blog.csdnimg.cn/blog_migrate/959cce07c5fc7668cd680932ec0c55b4.png

然后在重新运行项目,再进入刷新网页,可以看到多了两条数据

https://i-blog.csdnimg.cn/blog_migrate/69bbad76d4d69f1c278ef917d8f86b7e.png

总结

可建立Service层,实现更多的业务操作,如增删改查功能,该篇文章只用于springboot整合Mybatisplus 连接数据库快速入门。在实现该案例时也出现了很多的问题,不过后面查了很多资料终于解决了,后面感觉所有地方都没问题还是启动不了时,当我百思不得其解时,才发现我访问的是localhost:8080而不是localhost:8080/test

最后每篇一言: 拉满香蕉我无法刹车,放下香蕉我无法生活

——奥德彪

https://i-blog.csdnimg.cn/blog_migrate/5b5de81c5ec2aa718e2eb653356d0f7c.png

(奥德彪:“都是他们瞎扯的,我可没说”)