MyBatisPlus从入门到入土

MybatisPlus与Mybatis的不同

MybatisPlus与Mybatis是一种合作关系,目的是to be the best partner of Mybatis(成为Mybatis的最佳合作伙伴),可以极大的提升开发效率,也是当今企业开发中的必备技术。

MybatisPlus如何实现的增强?

润物无声

只做增强不做改变,引入mybatisplus不会对现有的工程产生影响,如丝般顺滑。

效率至上

只需简单配置,即可快速进行单表CRUD操作,从而节省大量时间。

丰富功能

代码生成,自动分页,逻辑删除,自动填充等功能一应俱全。

入门,如何使用mp

1.引入MybatisPlus的起步依赖

MybatisPlus官方提供了starter,其中集成了Mybatis和MybatisPlus的所有功能,并且实现了自动装配效果。因此我们可以用MybatisPlus的starter代替Mybatis的starter。

2.定义Mapper 

自定义的Mapper继承MybatisPlus提供的BaseMapper接口

3.找方法 

继承之后便拥有MybatisPlus的已封装好的增删改查的api且见名知意:

 原理

MybatisPlus通过扫描实体类(泛型),并基于反射获取实体类信息作为数据库表信息。

约定

●类名驼峰转下划线作为表名:createTime -> creat_time;

●名为id的字段作为主键;

●变量名驼峰转下划线作为表的字段名

常见注解

@TableName:用来指定表名:

@TableName("tb_user")

@TableId:用来指定表中的主键字段信息:

@TableId(value="id", type=" ?")

idType枚举:

AUTO:数据库自增长

INPUT:通过set方法自行插入

ASSIGN_ID:分配ID+接口identifierGenerator的方法nextId来生成id,默认实现类是DefaultIdentifierGenerator雪花算法

@TableField:用来指定表中的普通字段信息

@TableField使用场景:

1.成员变量名与数据库字段名不一致

2.成员变量名以is开头,且是布尔值

3.成员变量名与数据库关键字冲突

4.成员变量不是数据库字段,如order

常见配置 

MyBatisPlus的配置项继承了MyBatis原生配置和一些自己特有的配置。例如:

核心功能 

1.条件构造器

2.自定义SQL

以上两个为mp的实际应用,利用wrapper类进行api调用,简化sql和业务流程

3.Service接口

与上文的baseMapper一样具有非常多的api

但需要在自定义service接口中先继承IService接口

自定义Serviceimpl实现类中继承ServiceImpl类

扩展功能

代码生成

在idea插件中下载MyBatisPlus(二次元美少女图标)

应用后idea编辑栏最后会出现一个“Other”图标

选择“Config Database”连接数据库后选择“Code Generator

jdbc:mysql://localhost:3306/your_database?serverTimezone=Asia/Shanghai

这里建议大家看一下哔哩哔哩黑马微服务视频p12(BV1S142197x7)进行填充

静态工具

即静态工具DB,也是具有非常多的api

逻辑删除

逻辑删除就是基于代码逻辑模拟删除效果,但并不会真正删除数据

现实应用场景:客户在电商平台删除订单,并不会删除数据库存储的订单,而是逻辑删除

MybatisPlus提供了逻辑删除功能,无需改变方法调用的方式,而是在底层帮我们自动修改CRUD的语句。我们要做的就是在application.yaml文件中配置逻辑删除的字段名称和值即可:

 逻辑删除本身也有自己的问题,比如: 会导致数据库表垃圾数据越来越多,影响查询效率 SQL中全都需要对逻辑删除字段做判断,影响查询效率 因此,我不太推荐采用逻辑删除功能,如果数据不能删除,可以采用把数据迁移到其它表的办法。

枚举处理器

给枚举中的与数据库对应value值添加@EnumValue注解

在配置文件中配置统一的枚举处理器,实现类型转换 

 

JSON处理器

插件功能 

分页插件

首先,要在配置类中注册MyBatisPlus的核心插件,同时添加分页插件:

接着,就可以使用分页的API了:

 

总结

MybatisPlus是Mybatis的增强版,旨在成为Mybatis的最佳合作伙伴,显著提升开发效率。它通过无缝集成和增强功能,如代码生成、自动分页、逻辑删除等,简化了单表CRUD操作,而无需改变现有工程结构。MybatisPlus通过扫描实体类并利用反射机制获取数据库表信息,遵循类名和变量名驼峰转下划线的约定。它提供了丰富的注解如@TableName、@TableId和@TableField,以及配置项来支持复杂的数据库操作。此外,MybatisPlus还引入了条件构造器、自定义SQL、Service接口等核心功能,以及代码生成、逻辑删除、枚举处理器等扩展功能,使得开发更加高效和便捷。尽管逻辑删除功能存在数据积累和查询效率问题,但MybatisPlus提供了多种解决方案,如数据迁移,以适应不同的业务需求。

以上仅是mp的基本用法,但基本上已经足够应对基础的开发业务。

参考视频: BV1S142197x7

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值