MyBatis-Plus

介绍

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中测试运行(三步)
相关推荐
云烟成雨TD12 小时前
Spring AI Alibaba 1.x 系列【6】ReactAgent 同步执行 & 流式执行
java·人工智能·spring
Wenweno0o12 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
于慨12 小时前
Lambda 表达式、方法引用(Method Reference)语法
java·前端·servlet
swg32132112 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
gelald13 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川13 小时前
深入理解 AQS:从架构到实现,解锁 Java 并发编程的核心密钥
java
一轮弯弯的明月13 小时前
贝尔数求集合划分方案总数
java·笔记·蓝桥杯·学习心得
chenjingming66613 小时前
jmeter线程组设置以及串行和并行设置
java·开发语言·jmeter
殷紫川13 小时前
深入拆解 Java volatile:从内存屏障到无锁编程的实战指南
java
eddieHoo13 小时前
查看 Tomcat 的堆内存参数
java·tomcat