> 文章列表 > 【MyBatis Plus】001 -- MyBatis-Plus快速入门(介绍、QuickStart)

【MyBatis Plus】001 -- MyBatis-Plus快速入门(介绍、QuickStart)

【MyBatis Plus】001 -- MyBatis-Plus快速入门(介绍、QuickStart)

目录

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+MPSpring+Mybatis+MPSpring 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就可以完成MyBatisMP插件之间的整合)

Ⅲ、运行报错:

解决办法::在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 编写测试用例

测试结果: