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.5 发布的同时,由社区同学 @时间淡忘一切 开发的 idea 开发插件 MyBatis-Flex-Helper 也已发布,并上架到 idea 应用市场,支持 idea 2020.2-2023.2 所有版本:
MyBatis-Flex-Helper 的功能主要如下:
1、超好用的代码生成
支持直接连接数据库,选择表结构后一键生成 Controller、Service、Mapper、Model 等代码,同时支持自定义代码文件和代码模板。
2、智能的 APT 配置文件自动提示功能
直接编写 APT 配置文件,再也不担心写错,或者不明白其含义。
3、QueryWrapper SQL 预览
我们在 Java 代码中,编写 QueryWrapper,可以直接预览 QueryWrapper 生成的 SQL,除了 QueryWrapper 以外,还支持 QueryChain、UpdateChain 等构建是的 SQL 预览功能。
更值得赞扬的是,MyBatis-Flex-Helper 完全免费的同时,而且是开源的。这是一款高度自定义的 Mybatis-Flex IDEA 插件:
- 开源地址:https://gitee.com/djxchi/mybatis-flex-code-gen.git (大家别忘了来个 star)
- 视频简介:https://www.bilibili.com/video/BV1yV411g7Yd
MyBatis-Flex v1.5.5 更新如下:
- 新增:添加对 xml 分页查询的支持
- 新增:逻辑删除添加列默认值为 null 值时的构建功能,感谢 @王帅
- 新增:QueryWrapper 添加 clear() 方法以复用,感谢 @ybl
- 优化:添加更多的 QueryWrapper.select() 方法
- 优化:添加全表更新或全部删除时的异常信息国际化
- 优化:移除 Mappers.java 一些无用的代码
- 优化:重构 ModifyAttrsRecordProxyFactory 以提升性能
- 优化:重构 Page.java,默认使用 long 统一相关参数
- 优化:对 ClassUtil/ConvertUtil 等一些工具类进行优化,感谢 @xinjump
- 优化:代码生成器 ignoreColumns 变更为只对Entity生成有效果,感谢 @Jerry
- 优化:完善 Gitee 的 issue 模板配置,感谢 @王帅
- 优化:Relations 附加条件参数值修改为 Object 类型,感谢 @王帅
- 优化:重构 ActiveRecord 的关于关联查询的链式操作方法,感谢 @王帅
- 修复:修复游标查询时,配置 @Column(typeHandler =xxx) 不生生效的问题版本号#I7OYMN:达梦数据库大小写敏感场景
- 修复:UpdateChain.toSQL() 在某些情况下出错的问题
- 修复:动态表名在 updateByQuery 中无效的问题
- 修复:多数据源、且数据源加密的情况下,无法正确解析 jdbcUrl 的问题
- 修复:数据解密器在某些场景下会多次触发解密的问题
- 修复:逻辑删除配置为字符串时,多添加单引号的问题,感谢 @王帅
- 文档:添加自动映射的相关文档描述
- 文档:打印 SQL 的相关文档添加 MyBatis 原生配置的方式
- 文档:优化逻辑删除文档的一些代码展示示例有误的问题
- 文档:添加 xml 分页查询的相关文档和示例
- 文档:添加补充 Active Record 多种方式关联查询的文档,感谢 @王帅
- 文档:优化多数据源的代码配置展示,感谢 @lhzsdnu
- 文档:修改链式操作的代码示例错误,感谢 @Ikko Eltociear Ashimine
- 文档:修改 SQL 审计的相关错别字,感谢 @qixy
- 文档:修改 MyBatisFlexCustomizer 文档的一些错别字,感谢 @Q_Alex
当前版本得以发布,感谢以下8 位同学的 PR,他们分别是:
@Q_Alex,@qixy, @Ikko Eltociear Ashimine,@lhzsdnu,@王帅,@Jerry,@xinjump,@ybl
进一步了解 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 实现字典回写