目录
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 developmenthttps://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 编写测试用例
测试结果: