Mybatis-plus学习笔记
1.特性:
1.无侵入:引入mybatis-plus不会对mybatis框架产生任何影响因为他是在mybatis的基础上进行了扩展
2.依赖少:仅仅依赖mybatis和mybatis-Spring
3.损耗小:启动会自动注入基本的curd(增删改查)操作性能基本无损耗直接面向对象操作
4.预防sql注入:内置sql注入剥离器,防止sql注入
5.多主键策略:支持4中的主键策略,内含分布式唯一id生成器
6.支持热加载:mapper对应的xml支持热加载
热加载:在运行时重新加载class(开发环境)基于字节码的更改,适用于开发
热部署:在运行时从新加载整个应用(生产环境),清空内存从新打包 ,适用于项目
2.常用注解
1.@TableName
属性 类型 必填 默认值
value String 否 无 表名
resyltMap String 否 无 xml中resultMap的id
schema String 否 无 schema(@since 3.1.1)
keepGlobalPrefix boolean 否 false 是否保持全局的tablePrefix的值(如果设置了全局tablePrefix且自行设置了value的值)
2.@TableId
属性 类型 必填 默认值
value String 否 无 主键字段名
type Enum 否 IdType.NONE 主键类型
type的值:
AUTO 数据库自增
INPUT 自行输入
ID_WORKER 分布式全局唯一ID 长整型类型(long)
UUID 32位UUID字符串
NONE 无状态
ID_WORKER_STR 分布式全局唯一ID字符串类型
3.@TableFieId
属性 类型 必填 默认值
value String 否 无 字段名
el String 否 无 映射位原生#{ } 逻辑相当于写在xml里的#{}部分
exist boolean 否 true 是否为数据库表字段
condition String 否 无 where实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的
update String 否 无 表示更新时会set
fill Enum 否 FieIdFill.DEFAULT 字段自动填充策略
select boolean 否 true 是否进行select查询
keepGlobalFormat boolean 否 false 是否保持使用全局的Format进行处理
condition属性:
EQUAL 等于
NOT_EQUAL 不等于
LIKE 模糊查询
LIKE_LEFT 模糊查询小于
LIKE_RIGHT 模糊查询大于
4.@Version 乐观锁注解
使用:在需要乐观锁的表上加一个version字段 int类型 最好默认为1
在实体类的字段上加上@Version注解
乐观锁大多是基于数据版本Version记录机制实现,
读取数据时将此版本号一同读出,之后更新时对此版本号加一,此时将版本号和数据库的进行对比
如果提交的版本号大于数据库当前版本号则更新,否则认为是过期数据
5.@EnumValue 枚举注解
6.@TableLogic 表字段逻辑处理注解(逻辑删除注解)
属性 类型 必填 默认值
value String 否 无 逻辑未删除值
delval String 否 无 逻辑删除值
7.@KeySequence 序列主键策略
属性 类型 必填 默认值
value String 否 无 序列名
clazz Class 否 Long.class id的类型,可以指定String.class,这样返回的Sequence值是字符串"1"
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构