目录
1、了解MyBatis-Plus
1.1 MyBatis-Plus介绍
1.2 代码及文档
1.3 特性
1.4 架构
1.5 作者
2、快速开始
2.1 创建数据库以及表
2.2 创建工程
2.3 MyBatis + MP
2.3.1 创建子module
2.3.2 MyBatis实现查询User(无Service方法,直接通过Mapper实现查询)
2.3.3 MyBatis+MP实现查询User
2.4 Spring + Mybatis + MP
2.4.1 创建子module
2.4.2 实现查询User
2.5 SpringBoot + Mybatis + MP
2.5.1 创建工程
2.5.2 导入依赖
2.5.3 编写application.properties
2.5.4 编写pojo:
2.5.5 编写mapper
2.5.6 编写启动类
2.5.7 编写测试用例
环境安装:三款神器(MyBatis Plus + MyBatisX + MyBatis Plus Join);终于不用写数据库操作代码,一键生成直接调用
https://blog.csdn.net/lupengfei1009/article/details/121689443
1、了解MyBatis-Plus
1.1 MyBatis-Plus介绍

官网: MyBatis-Plus 或 Redirect
1.2 代码及文档
文档地址: 简介 | MyBatis-Plus
源码地址: GitHub - baomidou/mybatis-plus: An powerful enhanced toolkit of MyBatis for simplify developmentAn powerful enhanced toolkit of MyBatis for simplify development - GitHub - baomidou/mybatis-plus: An powerful enhanced toolkit of MyBatis for simplify development
https://github.com/baomidou/mybatis-plus
1.3 特性

1.4 架构

1.5 作者
码云地址: baomidou: 苞米豆,为提高生产率而生!

2、快速开始
对于Mybatis整合MP有常常有三种用法,分别是Mybatis+MP、Spring+Mybatis+MP、Spring Boot+Mybatis+MP
2.1 创建数据库以及表

Navicat:
| 建表语句: |
| -- 创建测试表 CREATE TABLE `tb_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `user_name` varchar(20) NOT NULL COMMENT '用户名', `password` varchar(20) NOT NULL COMMENT '密码', `name` varchar(30) DEFAULT NULL COMMENT '姓名', `age` int(11) DEFAULT NULL COMMENT '年龄', `email` varchar(50) DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; -- 插入测试数据 INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES ('1', 'zhangsan', '123456', '张三', '18', 'test1@itcast.cn'); INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES ('2', 'lisi', '123456', '李四', '20', 'test2@itcast.cn'); INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES ('3', 'wangwu', '123456', '王五', '28', 'test3@itcast.cn'); INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES ('4', 'zhaoliu', '123456', '赵六', '21', 'test4@itcast.cn'); INSERT INTO `tb_user` (`id`, `user_name`, `password`, `name`, `age`, `email`) VALUES ('5', 'sunqi', '123456', '孙七', '24', 'test5@itcast.cn'); |
| 表格形式: |
|
|
2.2 创建工程
| IDEA创建工程: |
|
|
| 导入依赖: |
|
|
| 检查项目依赖:
|
2.3 MyBatis + MP
下面演示,通过纯Mybatis与Mybatis-Plus整合
2.3.1 创建子module
| Ⅰ、创建一个子模块 itcast-myatis-plus-simple: |
|
|
| Ⅱ、如果是在原项目中创建的子模块,会自动依赖父模块的依赖:(子模块pom.xml) |
|
|
| Ⅲ、导入log4j.properties文件: |
|
|
2.3.2 MyBatis实现查询User(无Service方法,直接通过Mapper实现查询)
| Ⅰ、编写mybatis-config.xml文件:(主要配置了两部分内容,配置了本地的连接池,并导入了一个mapper文件) |
|
|
| Ⅱ、编写User实体对象:(这里使用lombok进行了进化bean操作) |
|
|
| Ⅲ、编写UserMapper接口: |
|
|
| Ⅳ、编写UserMapper.xml文件:(resultType中写的是对应实体类的全类名) |
|
|
| Ⅴ、编写TestMybatis测试用例: |
|
通过sqlSession,我们可以拿到一个Mapper,我们通过这个Mapper对象去调用Mapper方法即可 |
| Ⅵ、测试结果: |
|
|
2.3.3 MyBatis+MP实现查询User
| Ⅰ、将 UserMapper 继承 BaseMapper,将拥有了BaseMapper中的所有方法: |
|
BaseMapper中的方法:
|
| Ⅱ、使用MP中的MybatisSqlSessionFactoryBuilder进程构建:(通过MybatisSqlSessionFactoryBuilde就可以完成MyBatis与MP插件之间的整合) |
|
|
| Ⅲ、运行报错: |
|
|
| 解决办法::在User对象中添加注解 @TableName,指定数据库表名(因为在这里,我们使用的是MP中的方法selectList(),而不是我们自己的Mapper方法,因此需要指定数据库表名) |
|
|
| Ⅳ、再次运行测试:(从运行结果的查询语句,我们也可以看出此时执行的就是MP自动构建查询语句,而不是我们之前写的SQL语句) |
|
|
| 说明:由于使用了MybatisSqlSessionFactoryBuilder进行了构建,继承的BaseMapper中的方法就载入到了SqlSession中,所以就可以直接使用相关的方法,其方法可以在mappedStatements中看到; |
|
|
2.4 Spring + Mybatis + MP
引入了Spring框架,数据源、构建等工作就交给了Spring管理
2.4.1 创建子module
| Ⅰ、创建子模块 itcast-mybatis-plus-spring: |
|
|
| Ⅱ、导入 Spring 依赖: |
| 定义了 Spring 依赖版本号:
引入依赖:
|
2.4.2 实现查询User
| Ⅰ、编写jdbc.properties:(位于src中的resources目录下) |
|
|
| Ⅱ、编写applicationContext.xml: |
|
|
| Ⅲ、编写User对象以及UserMapper接口: |
| User实体类:
UserMapper接口:
|
| Ⅳ、编写测试用例:(由于我们引入了Spring,所以这里可以使用自动注入方法来直接注入对象)测试用例中会默认查找test目录下的配置文件,而非java目录下,因此我们可以在test目录下创建一个resources目录,并将配置文件复制过来:
|
|
测试:
|
2.5 SpringBoot + Mybatis + MP
使用SpringBoot将进一步的简化MP的整合,需要注意的是,由于使用SpringBoot需要继承parent,所以需要重新创建工程,并不是创建子Module
2.5.1 创建工程

2.5.2 导入依赖


log4j.properties:

2.5.3 编写application.properties

2.5.4 编写pojo:

2.5.5 编写mapper

2.5.6 编写启动类

2.5.7 编写测试用例

测试结果:













































![[架构之路-158]-《软考-系统分析师》-10-系统分析-1-5-逻辑设计、逻辑模型(系统分析师的主要职责之一)](https://img-blog.csdnimg.cn/40864fe2027c417eb8472566fd4429a4.png)






