MyBatis-Flex: 一个优雅的 MyBatis 增强框架
特征
1、很轻量
MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。
2、只增强
MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能。
3、高性能
MyBatis-Flex 采用独特的技术架构、相比许多同类框架,MyBatis-Flex 的在增删改查等方面的性能均超越其 5~10 倍或以上。
4、更灵动
MyBatis-Flex 支持多主键、多表查询、逻辑删除、乐观锁、数据脱敏、数据加密、多数据源、分库分表、字段权限、 字段加密、多租户、事务管理、SQL 审计... 等等等等。 这一切,免费且灵动。
在 MyBatis-Flex v1.5.7 发布啦,在 v1.5.7 中,可以通过 QueryWrapper 构建 left join 的 update 和 delete 的 SQL,比如:
UPDATEt1
LEFT JOIN
t2
ONt2.id = t1.id
SET t1.col1 = newvalue
WHERE t2.id IS NULL
同时在 MyBatis-Flex 多数据源中,添加了对 Seata 分布式事务的支持,已经针对逻辑删除、乐观锁、多租户等字段进行全局配置的相关支持。
MyBatis-Flex v1.5.7 更新细节如下:
- 新增:QueryWrapper 添加对 delete 和 update 的 left join 支持
- 新增:RelationManager.addIgnoreRelations() 添加对 lambda 的支持
- 新增:添加 QueryColumnBehavior 用于自定义 QueryColumn 的某些行为特征
- 新增:typeHandler 添加对泛型自动支持的功能
- 新增:多数据源新增对 Seata 分布式事务的支持,感谢 @life
- 新增:添加对 Kotlin 的扩展支持,感谢 @卡莫sama
- 新增:添加 saveOrUpdateBatch 方法的支持,感谢 @王帅
- 新增:QueryModel 提供 as 方法的支持,感谢 @王帅
- 新增:逻辑删除、乐观锁、多租户添加全局默认自动配置的功能,感谢 @王帅
- 优化:移除 flex 自动把 id 属性设置为主键的功能
- 优化:重构链式调用的方法,统一链式调用和 ActiveRecord 的 API,感谢 @王帅
- 优化:UpdateChian 支持设置 left join 的表数据的支持,感谢 @王帅
- 修复:db2 方言的 KeywordWrap 错误的问题
- 修复:在某些场景下 count 查询没有被替换的问题,感谢 @王帅
- 修复:QueryWrapper 的 or(consumer, condition) 方法逻辑错误,感谢 @王帅
- 修复:QueryColumn 由于 Predicate 没有类型约束可能导致类型转换异常的问题,感谢 @王帅
- 修复:OSGI 环境下,Lambda 通过 ClassLoader 获取不到类的问题,感谢 @2han9wen71an
- 文档:更新视频教程的文档链接
- 文档:添加 SpringBoot 最低版本的说明文档,感谢 @王帅
- 文档:Seata 分布式事务的相关文档,感谢 @life
- 文档:增加了使用gradle构建时的文档说明,感谢 @CloudPlayer
- 文档:增加了在Kotlin中使用注解处理器的说明,感谢 @CloudPlayer
- 文档:常见问题添加代码生成器获取不到注释说明,感谢 @王帅
- 文档:常见问题添加 Spring Devtools 造成的类转换异常的相关文档
- 文档:常见问题添加 Nacos 集成启动出错的相关文档
当前版本得以发布,感谢以下 4 位同学的 PR,他们分别是:
@王帅、@life、@CloudPlayer、@卡莫sama
进一步了解 MyBatis-Flex 框架,请参考一下链接:
- 1、快速开始:https://mybatis-flex.com/zh/intro/getting-started.html
- 2、多表关联查询:https://mybatis-flex.com/zh/base/query.html
- 3、一对多、多对一:https://mybatis-flex.com/zh/base/relations-query.html
- 4、灵活的 QueryWrapper:https://mybatis-flex.com/zh/base/querywrapper.html
- 5、逻辑删除:https://mybatis-flex.com/zh/core/logic-delete.html
- 6、乐观锁:https://mybatis-flex.com/zh/core/version.html
- 7、数据填充:https://mybatis-flex.com/zh/core/fill.html
- 6、数据脱敏:https://mybatis-flex.com/zh/core/mask.html
- 7、SQL 审计:https://mybatis-flex.com/zh/core/audit.html
- 8、多数据源:https://mybatis-flex.com/zh/core/multi-datasource.htm
- 9、数据源加密:https://mybatis-flex.com/zh/core/datasource-encryption.html
- 10、动态表名:https://mybatis-flex.com/zh/core/dynamic-table.html
- 11、事务管理:https://mybatis-flex.com/zh/core/tx.html
- 12、数据权限:https://mybatis-flex.com/zh/core/data-permission.html
- 13、字段权限:https://mybatis-flex.com/zh/core/columns-permission.html
- 14、字段加密:https://mybatis-flex.com/zh/core/columns-encrypt.html
- 15、字典回写:https://mybatis-flex.com/zh/core/columns-dict.html
- 16、枚举属性:https://mybatis-flex.com/zh/core/enum-property.html
- 17、多租户:https://mybatis-flex.com/zh/core/multi-tenancy.html
- 18、代码生成器:https://mybatis-flex.com/zh/others/codegen.html
- 19、QQ 交流群:https://mybatis-flex.com/zh/intro/qq-group.html
- 20、更好用的功能正在路上:https://mybatis-flex.com
bilibili 视频教程(免费):
- MyBatis-Flex 视频教程 - 01 课程介绍
- MyBatis-Flex 视频教程 - 02 MyBatis-Flex 简介
- MyBatis-Flex 视频教程 - 03 为什么使用 MyBatis-Flex
- MyBatis-Flex 视频教程 - 04 基于 SpringBoot 的快速开始
- MyBatis-Flex 视频教程 - 05 自动生成类的介绍
- MyBatis-Flex 视频教程 - 06 MyBatis-Flex 的配置选项
- MyBatis-Flex 视频教程 - 07 初识 BaseMapper 接口
- MyBatis-Flex 视频教程 - 08 插入数据
- MyBatis-Flex 视频教程 - 09 删除数据
- MyBatis-Flex 视频教程 - 10 更新数据
- MyBatis-Flex 视频教程 - 11 复杂更新
- MyBatis-Flex 视频教程 - 12 基础查询
- MyBatis-Flex 视频教程 - 13 映射查询
- MyBatis-Flex 视频教程 - 14 QueryWrapper 的介绍
- MyBatis-Flex 视频教程 - 15 QueryWrapper 的操作
- MyBatis-Flex 视频教程 - 16 @Table 注解的简单使用
- MyBatis-Flex 视频教程 - 17 onInsert、onUpdate 的使用
- MyBatis-Flex 视频教程 - 18 onSet 实现字段权限
- MyBatis-Flex 视频教程 - 19 onSet 实现字段加密
- MyBatis-Flex 视频教程 - 20 onSet 实现字典回写
- MyBatis-Flex 视频教程 - 21 全局监听器配置
- MyBatis-Flex 视频教程 - 22 @Id 的简单使用
- MyBatis-Flex 视频教程 - 23 自定义主键生成器
- MyBatis-Flex 视频教程 - 24 @Column 注解的简单使用
- MyBatis-Flex 视频教程 - 25 isLogicDelete 逻辑删除的简单使用
- MyBatis-Flex 视频教程 - 26 自定义逻辑删除处理器
- MyBatis-Flex 视频教程 - 27 version 乐观锁的简单使用
- MyBatis-Flex 视频教程 - 28 tenantId 多租户的简单使用
- MyBatis-Flex 视频教程 - 29 typeHandler 的简单使用
- MyBatis-Flex 视频教程 - 30 数据脱敏的简单使用
- MyBatis-Flex 视频教程 - 31 枚举属性的使用
- MyBatis-Flex 视频教程 - 32 关联查询(Join Query)
- MyBatis-Flex 视频教程 - 33 关联查询(Field Query)
- MyBatis-Flex 视频教程 - 34 关联查询(Relation Query)
- MyBatis-Flex 视频教程 - 35 关联查询对比
- MyBatis-Flex 视频教程 - 36 分页查询
- MyBatis-Flex 视频教程 - 37 分页查询 count 查询优化
- MyBatis-Flex 视频教程 - 38 基于 XML 文件的高性能分页
- MyBatis-Flex 视频教程 - 39 Db + Row