MyBatis-Plus 使用

MyBatis-Plus 🚀 为简化开发而生

1. 快速上手

1.1 准备工作

1.2 编码

创建实体类 UserInfo

编写Mapper接口类

MyBatisPlus提供了一个基础的BaseMapper接口,已经实现了单标的CRUD,我们自定义的Mapper只需要继承这个BaseMapper,无需自己实现单表CRUD

1.3 CRUD测试

2. Mybatis-Plus 复杂操作

2.1 常见注解

Mybatis是如何知道要操作那张表,表中的哪些字段

UserInfoMapper 在继承 BaseMapper 时指定了一个泛型,这个UserInfo就是与数据表相对应的实体类

Mybatis-Plus 会根据这个实体类来推断表的信息

默认情况如下:

  1. 表名

  2. 字段

  3. 主键:默认是id

2.1.1 @TableName

可以通过@TableName来表示实体类对应的表

2.1.2 @TableField

2.1.3 @Tabled

2.2 条件构造器

入门程序里的使用,都是简单的CRUD,在实际的应用场景中,我们还需要使用更复杂的操作,Mybatis-Plus 也提供了相应的支持

Mybatis-Plus 提供了一套强大的条件构造器(Wrapper)用于构建复杂的查询条件条件构造器 | MyBatis-Plus

2.2.1 QueryWrapper

QueryWrapper并不只是用于查询语句,无论是修改、删除、查询都可以使用QueryWrapper来构建查询条件

查询

复制代码
SELECT id,username,password,age FROM user_info WHERE age = 18 AND username 
like "%min%"

更新

复制代码
UPDATE user_info SET delete_flag=? WHERE age < 20

删除

复制代码
DELETE FROM user_info WHERE age = 4

2.2.2 UpdateWrapper

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

复制代码
UPDATE user_info SET delete_flag=0, age=5 WHERE id IN (1,2,3)

2.2.3 LamdbaQueryWrapper

QueryWrapper 和 UpdateWrapper 都存在一个问题,就是需要写死字段名,如果字段名发生变更,可能会因为测试不到位造成错误

Mybatis-Plus 提供了一种基于Lambda表达式的条件和构造器,它通过Lambda 表达式引用实体类属性,从而避免了硬编码字段名,也提高了代码的可读性和可维护性

2.2.4 LambdaUpdateWrapper

2.3 自定义SQL

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

相关推荐
Nuanyt4 小时前
SSM 学习记录 第二部分 Spring整合Mybatis&Junit AOP核心概念 Spring事务管理 SpringMVC 请求与响应 Rest风格
java·spring·junit·mybatis·restful
米码收割机5 小时前
【SSM】Spring MVC_MyBatis SSM商城系统(源码+论文)【独一无二】
spring·mvc·mybatis
Devin~Y1 天前
互联网大厂 Java 面试实录:Spring Boot、MyBatis、Redis、Kafka、Spring Security、RAG 与 MCP 全链路问答
java·redis·kafka·mybatis·spring security·spring mvc·sprint boot
VX_bysjlw9852 天前
基于微信小程序的宠物用品商城系统-后端74346-计算机毕设原创(免费领源码+带部署教程)
java·redis·微信小程序·eclipse·mybatis·idea·微信开发者工具
hexu_blog2 天前
springboot3集成shardingsphere4.0 分表分库
java·spring boot·mybatis
乐观的Terry2 天前
9、发布系统-Webhook自动发布
java·spring boot·spring·spring cloud·mybatis
聆听。。花开雨落3 天前
mybatis的typeHandler 作用
数据库·mybatis
天若有情6735 天前
SpringBoot4 + MyBatis 前后端分离实战|从零实现坏习惯管理系统,支持局域网手机访问CRUD
智能手机·mybatis
不能只会打代码5 天前
Day 011 — Spring 全家桶深度拆解
spring boot·mybatis·spring aop·spring mvc·spring ioc
憧憬成为web高手6 天前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis