Mybatis-plus学习笔记

官方文档:简介 | MyBatis-Plus (baomidou.com)


1. 使用基本流程

1. 继承BaseMapper后,可调用其中的最基本crud方法(需在po对象类中指定表名)

2. 当要使用到条件更新时,可使用Wrapper:QueryWrapper、UpdateWrapper使用它们来设置条件,然后执行调用对应的函数来执行对已经的操作。

3. MP提供了多种查询操作,包括根据id查询、批量查询、查询单条数据、查询列表、分页查询等操作。


2. mp中的常用注解

使用反射技术来对应数据库中表信息

@TableName,用于注定该数据模型类对应数据库哪张表


@TableId,用于指定该表中对应数据模型类中的主键id,type属性,里面的IdType枚举不写默认为雪花算法的那个方式来自动插入id,当将IdType设置为AUTO时,不需要填写主键字段,即可自动增长来填写


@TableFiled,用于将不符合mp命名规范的字段与数据库中真实字段对应起来

1.当变量名与数据库关键字冲突时,需要加上''单引号来转义该字段

   2. 成员变量不是数据库字段时,@TableFiled中应写exist = false)


3. 条件构造器

主要两个wrapper,因为光是继承BaseMapper不能满足复杂SQL需要。里面有个setSql()方法。

推荐使用最下面两个wrapper。使用最下面两个wrapper时,可以避免硬编码。类似于编写SQL。


4. 自定义SQL


5. Service接口基本用法

实现类中在继承时,需指定对应的mapper文件和对应的实体。

在Iservice的实现类ServiceImpl中有自动注入private M baseMapper; 实际上底层还是调用的baseMapper的很多方法。


6. IService的Lambda用法

还有一个LambdaUpdate方法,较复杂的查询和更新建议使用。

使用重载后的条件方法中的bool condition参数,填入情况。如上。

IService中的lambdaQuery方法

可直接调用,不需要new出wrapper


7. IService批量新增

使用for循环来调用基础方法save批量新增是最慢的

效率很高 saveBatch()方法。使用的预编译语句,但是是多条SQL语句同时执行,一次性操作。

如果要将该操作变成上图所示效率最高的方式,则需要在配置文件中开启rewriteBatchedStatements=true参数。

在jdbc的url中添加这个参数就行。


8. 代码生成器

下载插件MybatisPlus(以动漫女生为图标的)。


9. 扩展功能-DB静态工具

里面为静态方法,需要传递实体类的Class文件字节码。

在service需要相互注入的时候比较好用。可以减少代码的耦合度。

从获取到的用户中提取id列表。


10. 逻辑删除

数据库中多一个deleted字段,做更新操作。

在查询时,加上这个条件deleted=0,表示未逻辑删除的数据。


11. 枚举处理器

比如在用户实体中有个字段status,表示用户状态,当需要使用该字段时,可以通过枚举的形式

将这个字段的类型设置为自定义的枚举类型。

1. 给枚举类的成员变量加上@EnumValue注解

@JsonValue注解用来表示SpringMVC返回该字段给前端。

2. 在yml文件中配置


12. Json处理器

第一步,在po类中的对应数据库中Json类型的字段加上@TableFiled注解@TableFiled(typeHandler = JacksonTypeHandler.class)并在前面的注解@TableName中添加autoResultMap = true。


13. 分页插件用法

继承关系:

很方便,直接调用page方法就行。

未完,后续其他大佬章节:

最新版MyBatis-Plus使用详解_Intelligent_M的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay/.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值