2025/2/15)
小蓝鸟。约定大于配置。只做增强不做改变不影响现有工程。相对Mybatis小红鸟MyBatis-Plus 帮助文档简介 | MyBatis-PlusMyBatis-Plus快速入门pom文件里引入MyBatis-Plus依赖代替MyBatis依赖。自定义Mapper接口继承BaseMapper接口。BaseMapper接口给我们提供了一堆写好的crud方法直接引用就不用自己手写了。泛型是操作实体类的类型这里是user。MP获取数据库信息的原理MyBatisPlus通过扫描实体类并基于反射获取实体类信息作为数据库表信息。约定大于配置。自定义配置如果主键id没有指定自增加auto默认id使用雪花算法。MP自定义配置有了MP的starter起步依赖就可以使用MP同时MP也支持自定义配置。MP核心功能条件构造器MP支持各种复杂的where条件可以满足日常开发的所有需求。自定义SQL可以利用MyBatisPlus的Wrapper来构建复杂的where条件然后自己定义SQL语句中剩下的部分。Service接口继承IServiceService的增删改查代码也不用自己写了。总结自定义接口UserService需要去继承IService接口MP不仅给我们提供了接口IService还给我们提供了Service默认的实现类叫ServiceImpl已经实现了IService接口了实现类UserServiceImpl需要去继承实现类ServiceImpl。IService开发基础业务功能接口MP接口练习MybatisPlus-08.核心功能-IService开发基础业务接口_哔哩哔哩_bilibiliMybatisPlus-09.核心功能-IService开发复杂业务接口_哔哩哔哩_bilibiliMybatisPlus-10.核心功能-IService的Lambda方法_哔哩哔哩_bilibiliMybatisPlus-11.核心功能-IService的批量新增_哔哩哔哩_bilibiliMP的扩展功能代码生成基本格式生成上面类似的代码可以使用MyBatisX快速代码插件(idea)DB静态工具方便避免循环依赖。为什么用DB这个工具多个service之间相互调如果采用传统的autowire注入方式两个service相互注入就会产生循环依赖。建议一旦出现service相互调用建议使用db静态工具调用。db工具的方法和service里的方法基本一样。逻辑删除不是真正的删除一个东西而是基于逻辑判断的方式模拟删除效果。逻辑删除就是基于代码逻辑模拟删除效果但不会真正删除数据思路如下图所以这种操作不是delete而是update更新某个标记字段的取值。以后的where查询里要有标记字段为0的条件只需要修改application文件配置删除的字段名称和值就可以自动修改了。假如该字段叫flag坏处会导致数据库的垃圾越来越多。枚举处理器枚举类型和数据库字段之间的相互转换。下图就需要进行这样的转换数据库里的status数据类型是int的而枚举类型是UserStatus。Mybatis里的TypeHandler就实现了java数据类型和数据库类型之间的转换。但是这里我们用的是另一种方法。首先加注解EnumValue。第二步VO里类型变量PO里也要变类型从Interger变成UserStatus方便以后拷贝。JsonValue加到哪里就返回哪个这个返回的就是正常或冻结不加返回Normal或Frozen。JSON处理器解决数据库中Json数据类型和java类型之间的转换。json类型在java中一般用String类型接收。如果要取json里单独信息要转换成对象很麻烦。使用自带接口。1.给字段定义处理器。2.开启map自动映射。MP的插件功能分页插件1.配置2.使用分页Api3.通用分页实体通用分页实体与MP转换