Mybatis-Flex 一个优雅的 Mybatis 增强框架
Mybatis-Flex: 更灵活、更轻量、更好用
1|0特征
- 很轻量,整个框架只依赖 Mybatis 再无其他第三方依赖
- 只增强,支持 Entity 的增删改查、及分页查询,但不丢失 Mybatis 原有功能
- 内置 Db + Row 工具,可以无需实体类对数据库进行增删改查
- 支持多种数据库类型,还可以通过方言持续扩展
- 支持多(联合)主键,以及不同的主键内容生成策略
- 支持逻辑删除设置、更新或插入的默认值配置以及大字段等设置
- 支持乐观锁字段配置,在数据更新时自动进行乐观锁检测
- 极其友好的 SQL 联动查询,IDE 自动提示不再担心出错
2|0快速开始
Maven 依赖
以下的 xml maven 依赖示例中,可能并非最新的 Mybatis-Flex 版本,请自行查看最新版本,并修改版本号。
1、只用到了 Mybatis,没用到 Spring 的场景:
2、用到了 Spring 的场景
3、用到了 Spring Boot 的场景
3|0hello world(原生)
第一步:编写 Entity 实体类
第二步,编写 Mapper 类,并继承 BaseMapper
第三步:开始查询数据
示例 1:查询 1 条数据
示例2:查询列表
示例3:分页查询
4|0QueryWrapper示例
select *
select columns
简单示例:
多表查询(同时展现了功能强大的 as 能力):
select functions
where
where select
and (...) or (...)
group by
having
orderBy
join
5|0Mybatis-Flex 乐观锁
使用场景
用于当有多个用户(或者多场景)去同时修改同一条数据的时候,只允许有一个修改成功。
实现原理
使用一个字段,用于记录数据的版本,当修改数据的时候,会去检测当前版本是否是正在修改的版本,同时修改成功后会把 版本号 + 1。
更新数据时,执行的 SQL 如下:
在以上的 SQL 中,若两个场景同时读取的是同一个 version 的内容,那么必然只最优先执行的 SQL 执行成功。
以下是 示例代码:
需要注意的是:
- 1、在同一张表中,只能有一个被 @Column(version = true) 修饰的字段。
- 2、Account 在插入数据时,若 version 未设置值,那么会自动被 Mybatis-Flex 设置为 0。
-END-
开源协议:Apache-2.0
开源地址:
https://github.com/mybatis-flex/mybatis-flex
__EOF__

本文链接:https://www.cnblogs.com/caicz/p/17242490.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人