Mybatis-扩展功能

逻辑删除+乐观锁

MyBatisPlus从入门到精通-3(含mp代码生成器)

Db静态工具类

Spring依赖循环问题

代码生成器

MybatisPlus代码生成器

枚举处理器

我们这里用int来存储状态

需要注解,很不灵活

希望用枚举类来代替这个Integer

这样的话我们进行service操作就可以直接看到信息

但是枚举类型和数据库中表的字段不匹配,怎么实现这个数据类型的转换呢?

mp实现了好用的枚举处理器和json处理器供我们使用

具体操作

创建注解和替换类型就不说了

1.enum中加@EnumValue注解

枚举类那个对应表的字段一定要包含数据库对应字段所以可能出现的情况

因为他是enum类型如果你查出个3他也没法创建啊,枚举类不给set,且构造方法是私有的

2.在配置文件写一个配置

这样写逻辑时候代码可读性就变的好一点

这样返回的是对象名啊,如果想设置别的作为返回的json数据的话,用@JsonValue标注

小声哔哔

我感觉常量类定义一下也可以这样

定义几个变量,就是要用英文标识呗,感觉用处不大

JSON处理器

我们查User表里面有个Userinfo的json属性

我们就用对象接收UserJson,需要json处理器

要不然只能有String 接收 info 自己处理

这时只需要加上@TableField(typeHandler = JacksonTypeHandler)注释

就是标定json处理器
我们json处理器不像枚举一样有全局配置,所以需要我们一个一个写注解喽

然后还要在@Tablename(autoResultMap = true)

开启resultmap映射

分页插件

分页插件最常用

这个是mp里面的功能哈


举例

封装VO返回就不看了

看一些怎么分页查吧

分页查询实体(所有业务分页查询都可以用它)

User扩展分页查询参数继承PageQuery

优化

其实上面的构建page

和封装VO的过程是每个分页查询都会做的

所以其实我们可以提取成工具方法


写完后改造之前业务逻辑

非常简洁

相关推荐
小志开发1 天前
SQL从入门到起飞:完整学习数据库与100+练习题
数据库·sql·学习·mysql·oracle·sqlserver·navcat
轩情吖1 天前
Qt常用控件之QLabel(一)
开发语言·数据库·c++·qt·小程序·qlabel·桌面开发
汽车仪器仪表相关领域1 天前
工业安全新利器:NHQT-4四合一检测线系统深度解析
网络·数据库·人工智能·安全·汽车·检测站·汽车检测
lypzcgf1 天前
Coze源码分析-资源库-创建数据库-后端源码-安全与错误处理
数据库·安全·go·coze·coze源码分析·ai应用平台·agent平台
望获linux1 天前
【实时Linux实战系列】实时安全 C++ 模式:无异常、预分配与自定义分配器
java·linux·服务器·开发语言·数据库·chrome·tomcat
TDengine (老段)1 天前
TDengine 聚合函数 VAR_POP 用户手册
大数据·数据库·sql·物联网·时序数据库·tdengine·涛思数据
不剪发的Tony老师1 天前
SQLite Expert:一款功能强大的SQLite管理工具
数据库·sqlite
麦当_1 天前
Cloudflare Workers 环境下的数据库死锁问题及解决方案
javascript·数据库·后端
xhbh6661 天前
【硬核对比】Hive与MySQL全方位深度对比:从架构、SQL语法到应用场景,搞懂选型不踩坑
数据库·mysql·hive和mysql的区别
奋进的白羊1 天前
clickhouse使用问题记录
数据库·clickhouse