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中测试运行(三步)
相关推荐
南無忘码至尊1 分钟前
Unity C# 入门基础知识点整理与实战技巧
开发语言·c#
江梦寻2 分钟前
软件工程教学评价
开发语言·后端·macos·架构·github·软件工程
iCxhust3 分钟前
汇编字符串比较函数
c语言·开发语言·汇编·单片机·嵌入式硬件
张乔249 分钟前
spring boot项目整合mybatis实现多数据源的配置
java·spring boot·多数据源
GzlAndy14 分钟前
Tomcat调优
java·tomcat
美好的事情能不能发生在我身上16 分钟前
苍穹外卖Day11代码解析以及深入思考
java·spring boot·后端·spring·架构
辉辉健身中23 分钟前
Maven入门(够用)
java·maven
星火飞码iFlyCode37 分钟前
【无标题】
java·前端·人工智能·算法
不良手残1 小时前
Redisson + Lettuce 在 Spring Boot 中的最佳实践方案
java·spring boot·redis·后端
YuTaoShao1 小时前
Java八股文——Spring「Spring 篇」
java·数据库·spring