springboot 整合 mybatisplus 连接数据库

目录

前言

一、springboot 中的三层架构

二、springboot 项目创建

三、配置 mybatisplus

3.1介绍mybatisplus

3.2 在 springboot 中配置 mybatisplus

3.3 配置数据库

3.4防全表更新与删除插件

3.5 编写各代码层对应代码

3.5.1 entity 层

 3.5.2 mapper 层

3.5.3 controller 层

3.6 启动

四、测试

总结


前言

本案例在 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-Plus 是一个 MyBatis 的增强工具,在 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

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

                                                                                               ——奥德彪

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

  • 22
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值