介绍
MyBatis-Plus(简称 MP) 是⼀个 MyBatis 的增强⼯具, 在 MyBatis 的基础上只做增强不做改变, 为简化开 发. 提⾼效率⽽⽣
1.准备⼯作
1.项⽬准备
1.
创建springboot⼯程
2. 添加MyBatis-Plus和MySQL依赖, 配置数据库连接信息
添加MyBatis-Plus和MySQL依赖

配置数据库
打印⽇志
2. 数据准备
--
创建数据库
DROP
DATABASE IF
EXISTS
mybatis_test;
CREATE
DATABASE mybatis_test
DEFAULT
CHARACTER
SET
utf8mb4;
--
使⽤数据数据
USE mybatis_test;
--
创建表
[
⽤⼾表
]
DROP TABLE
IF
EXISTS
user_info;
CREATE TABLE
`user_info` (
`id`
INT
(
11
)
NOT NULL
AUTO_INCREMENT,
`username`
VARCHAR
(
127
)
NOT NULL
,
`password`
VARCHAR
(
127
)
NOT NULL
,
`age` TINYINT (
4
)
NOT NULL
,
`gender` TINYINT (
4
)
DEFAULT
'0'
COMMENT
'1-
男
2-
⼥
0-
默认
'
,
`phone`
VARCHAR
(
15
)
DEFAULT NULL
,
`delete_flag` TINYINT (
4
)
DEFAULT
0
COMMENT
'0-
正常
, 1-
删除
'
,
`create_time` DATETIME
DEFAULT
now(),
`update_time` DATETIME
DEFAULT
now(),
PRIMARY
KEY ( `id` )
) ENGINE = INNODB
DEFAULT
CHARSET = utf8mb4;
--
添加⽤⼾信息
INSERT INTO
mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES
(
'admin'
,
'admin'
,
18
,
1
,
'18612340001'
);
INSERT INTO
mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES
(
'zhangsan'
,
'zhangsan'
,
18
,
1
,
'18612340002'
);
INSERT INTO
mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES
(
'lisi'
,
'lisi'
,
18
,
1
,
'18612340003'
);
INSERT INTO
mybatis_test.user_info( username, `password`, age, gender, phone )
VALUES
(
'wangwu'
,
'wangwu'
,
18
,
1
,
'18612340004'
);
2 编码
3.MyBatis-Plus复杂操作(重点)
1.注解:TableName、TableField、TableId
2.条件构造器
以下是主要的 Wrapper 类及其功能:
AbstractWrapper:这是⼀个抽象基类, 提供了所有 Wrapper 类共有的⽅法和属性. 详细参考官⽹
介绍:
条件构造器
QueryWrapper:⽤于
构造查询条件,
在AbstractWrapper的基础上拓展了⼀个select⽅法,
允许指
定查询字段.
UpdateWrapper: ⽤于
构造更新条件
, 可以在更
新数据时指定条件
.
LambdaQueryWrapper:基于
Lambda 表达式的查询条件构造器
, 它通过 Lambda 表达式来引⽤
实体类的属性,从⽽避免了硬编码字段名.
LambdaUpdateWrapper: 基于 Lambda 表达式的更新条件构造器, 它允许你使⽤ Lambda 表达
式来指定更新字段和条件,同样避免了硬编码字段名的问题.
1 QueryWrapper
QueryWrapper并不只⽤于查询语句, ⽆论是修改, 删除, 查询, 都可以使⽤QueryWrapper来构建查询条 件



2 UpdateWrapper
对于更新, 我们也可以直接使⽤ UpdateWrapper, 在不创建实体对象的情况下, 直接设置更新字段和条 件.


3 LambdaQueryWrapper
QueryWrapper 和 UpdateWrapper存在⼀个问题, 就是需要写死字段名, 如果字段名发⽣变更, 可能会 因为测试不到位酿成事故.
MyBatis-Plus 给我们提供了⼀种基于Lambda表达式的条件构造器, 它通过 Lambda 表达式来引⽤实体 类的属性,从⽽避免了硬编码字段名, 也提⾼了代码的可读性和可维护性.
•
LambdaQueryWrapper
•
LambdaUpdateWrapper
分别对应上述的QueryWrapper和UpdateWrapper
就多加queryWrapper.lambda()

3. ⾃定义SQL
在实际的开发中, MyBatis-Plus提供的操作不能满⾜我们的实际需求, MyBatis-Plus 也提供了⾃定义
SQL的功能, 我们可以利⽤Wrapper构造查询条件, 再结合Mapper编写SQL





4. 总结
1.
MyBatis-Plus 是 MyBatis 的增强⼯具, 在 MyBatis 的基础上只做增强不做改变, 可以⽤更少的代码
实现数据库表的CRUD, 让我们的开发变得更加简单.
2.
MyBatis-Plus ⽀持⾃定义SQL, 版本不低于3.0.7, 传递 Wrapper 对象作为参数时, 参数名必须为 ew, 在 SQL 语句中,使⽤ ${ew.customSqlSegment} 来引⽤ Wrapper 对象⽣成的 SQL ⽚段

1.先Mapper里继承BaseMapper<>接口,再Text运行(两步)
自定义2.先Mapper里@Select等再在Text中测试运行(两步)

3.先Mapper里定义,再在XML里<select>等,最后在Text中测试运行(三步)

