目录
一、概述
本篇文章将根据2024版黑马程序员SpringCloud教程的MybatisPlus入门案例的教程进行一个详解。
二、准备工作
1.下载资源
打开黑马程序员提供的链接,进入网盘下载资源:https://pan.baidu.com/s/1JX0fhmV82mgPeBBbAMNV0w?pwd=7988
下载完毕后的目录:
- domain文件夹暂时没有用,可以先不管
- mp-demo为项目源代码,之后在idea中打开的项目文件就是这个
- mp-sql是mysql的脚本文件,用于创建两张表:user表和address,本入门案例用的是user表
2.打开项目
打开idea,点击 文件-》打开:
选择项目文件,再点击确定即可
3.导入sql脚本
(1)连接数据库
在idea界面的最右侧,有一个数据库选项(这是idea自带的数据库插件)
点击之后,打开界面,刚开始打开的时候,我们还未连接数据库,需要先进行连接。点击+号,选择数据源,再选择Mysql:
在弹出的对话框中,填入用户和密码。用户一般为root,密码为mysql的密码,其他信息暂时不用理会:
在点击确定之前,我们可以点击测试连接,如果显示如图信息,说明Mysql已连接成功:
点击确定后,就成功连接了数据库:
(2)新建架构
为什么要新建架构?
我们先打开项目文件的配置信息:
该项目使用的是本地数据库的mp架构,所以我们要新建一个mp架构,然后需要注意的是,配置信息中的username和password的值要修改成自己数据库的信息。
理解了为什么要新建架构之后,接下来我们就来新建mp架构吧!
选中数据源,点击鼠标右键,选择新建,选择架构:
在弹出的对话框中,将名字改成mp,然后点击确定(其他选项暂时不用理会):
然后就成功创建了mp架构:
(3)导入sql脚本
选中mp架构,右击,选择SQL脚本->运行SQL脚本
选择资源中的.sql后缀文件,点击确定
运行sql脚本后,架构中便生成了两张表:user和address。本入门案例操作的是user表
三、项目目录分析
- User实体类:对应于数据库的user表
- UserMapper接口:定义数据库操作的接口方法
- MpDemoApplication:项目启动类
- UserMapper.xml映射文件:用于配置和管理sql映射
- application.yaml:项目的配置文件
四、使用MybatisPlus
1.使用之前
在使用之前,我们通过mapper接口定义数据库操作的方法,使用UserMapper.xml做映射文件
2.使用步骤
(1)引入MybatisPlus的起步依赖
MybatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。因此我们可以用MybatisPlus的starter代替Mybatis的starter。打开pom.xml文件,在对应位置替换如下代码:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
(2)定义Mapper
自定义的Mapper继承MybatisPlus提供的BaseMapper接口(泛型为我们想要操作的表的实体类型,这里为User):
BaseMapper接口已经提前定义好了大量的增删改查方法。因为我们定义的Mapper继承了BaseMapper,所以我们可以直接使用这些方法
(3)修改测试类
点击如图标记的文件:
在修改之前,我们可以看到,里面对数据库的操作都是通过mybatis进行:
因为MybatisPlus对mybatis是无侵入的,所以原来定义了的mapper方法依然可以使用
现在我们想用MybatisPlus,直接调用MybtisPlus的方法即可,比如删除数据的方法。
我们在修改前的删除数据的方法为:
光标移到在deleteUser上,按住ctrl键并点击鼠标左键,idea会帮我们跳转到这个方法的出处:
可以看到这是我们自己定义的delete方法。
现在我们将其改成使用MybatisPlus的方式:
同样光标移动到deleteById,然后按住ctrl并点击鼠标左键:
可以看到,idea帮我们定位到了BaseMapper接口,说明我们直接使用的是BaseMapper自带的接口方法而非我们自己定义的。
运行测试一下:
可以成功运行。
五、总结
我们使用MybatisPlus后,对于单表的操作,就不需要自己手动写sql语句了,直接让mapper继承BaseMapper<?>,"?"为你想操作的表对应的实体类,然后直接调用里面的方法即可。
在方法的命名上,MybatisPlus也做到了见名知义,跟查询有关的方法以select开头,跟删除有关的方法以delete开头,跟更新有关的方法以update开头,跟插入有关的方法以insert开头。