MyBatis-Flex v1.4.9 发布,持续加强多表关联查询


MyBatis-Flex: 一个优雅的 MyBatis 增强框架

特征

1、很轻量

MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。

2、只增强

MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能。

3、高性能

MyBatis-Flex 采用独特的技术架构、相比同类框架(比如 MyBatis-Plus),MyBatis-Flex 的在增删改查等方面的性能均超越其 5~10 倍或以上。

4、更灵动

MyBatis-Flex 支持多主键、多表查询、逻辑删除、乐观锁、数据脱敏、数据加密、多数据源、分库分表、字段权限、 字段加密、多租户、事务管理、SQL 审计... 等等等等。 这一切,免费且灵动。

 

在上一个版本 MyBatis-Flex v1.4.8 中,我们增加了对 Rleation 注解的夸数据源支持,例如:

public class Account implements Serializable {

@Id(keyType = KeyType.Auto)
private Long id;

private String userName;

@RelationOneToMany(targetField = "accountId", dataSource="ds2")
private List<Book> books;

//getter setter
}

在以上代码中,Account 的关联数据 books,是从 ds2 数据源中获取的,Account 和 Book 可以并不在同一个数据库里。

假设,Account 有 5 条数据,关联查询全部数据,执行的 SQL 如下:

SELECT `id`, `user_name`, `age` FROM `tb_account`

SELECT `id`, `account_id`, `title`, `content` FROM `tb_book` 
WHERE account_id IN (1, 2, 3, 4, 5)

在这个版本中,我们有增加了对关联查询的支持,比如支持多级递归查询,并可以配置递归深度,通过这种场景我们轻易的对 tree 进行查询。例如:

@Table(value = "tb_menu")
public class Menu implements Serializable {

private Long id;

private Long parentId;

private String name;

@RelationOneToMany(selfField = "id", targetField = "parentId")
private List<Menu> children;

//getter setter
}

可以无限极查询出其 children 内容。

除此之外,在 v1.4.9 中,@RelationOneToMany 等注解一样支持对 vo、dto 的配置,同时支持通过中间表进行关联的场景。

 

MyBatis-Flex v1.4.9 更新如下:

  • 新增:Relation 注解支持递归查询的功能及递归深度设置的功能
  • 新增:Relation 注解添加对 vo、dto 等进行关联查询时,可以指定表的配置支持
  • 新增:Relation 注解支持通过中间表进行 join 场景的支持
  • 新增:Relation 注解添加自定义条件 extraCondition 配置的支持
  • 新增:Relation 注解添加可以忽略某个注解查询的支持
  • 新增:数据方言新增对 星瑞格数据库 的支持,感谢 @占山为王
  • 新增:BaseMapper.updateByMap() 方法,感谢 @王帅
  • 新增:QueryWrapper 构建添加 ture、false 常量函数,感谢 @王帅
  • 优化:静态常量使用 final 修饰,感谢 @meng.liu3
  • 优化:为项目添加 .editorconfig 文件,统一不同作者协助的代码格式化
  • 优化:UpdateWrapper 添加 of 方法,用于替代强转更新
  • 优化:重构 BaseMapper 的文档生成器,感谢 @王帅
  • 优化:添加码生成器 tableDef 字段排序,感谢 @王帅
  • 修复:使用 SqlServer 2005 方言查询时出错的问题
  • 修复:selectListWithRelationsByQueryAs 出现数据类型转换异常的问题
  • 修复:Relations 注解在用户定义包装类型时可能导致结果出错的问题
  • 修复:代码生成器配置 setListenerClass 时,结果不正确的问题,感谢 @菜鸟3853
  • 修复:APT 功能在使用 gradle 时无法读取配置文件的问题,感谢 @王帅
  • 文档:更新 Relations 注解的相关文档
  • 文档:调整 ChangeLog 放到首页菜单
  • 文档:完善代码生成器的相关配置文档,感谢 @王帅

 

进一步了解 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

 

和其他框架对比请参考:

  • 1、和 MyBatis-Plus Fluent-Mybatis 功能】方面的对比:https://mybatis-flex.com/zh/intro/comparison.html
  • 2、和 MyBatis-Plus 性能】方面的对比:https://mybatis-flex.com/zh/intro/benchmark.html

 

视频教程:

  • 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 接口

相關推薦

2023-10-28

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2023-08-06

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2023-08-27

26 日「源创会」北京站,聊聊 AI 大模型与底层技术 >>> MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、

2023-08-13

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2023-09-23

技术都能四世同堂,凭什么开发 30 岁就要被干掉? MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、

2023-10-17

的前两天),相约开源PHP办公室,我们一起聊 AI!>>> MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、

2023-10-10

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2023-07-08

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2023-07-27

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2023-09-26

MyBatis-Flex: 一个优雅的 MyBatis 增强框架 特征 1、很轻量 MyBatis-Flex 整个框架只依赖 MyBatis,再无其他任何第三方依赖。 2、只增强 MyBatis-Flex 支持 CRUD、分页查询、多表查询、批量操作,但不丢失 MyBatis 原有的任何功能

2023-08-05

标识 调整BeetlSQL+SpringBoot集成方式,支持SpringBoot3 新增MyBatis-Flex,EasyQuery  俩款ORM工具性能测试 maven <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql</artifactId> <version>3.23.7-RELEASE</version> &l

2023-06-21

LTS 的版本,有小版本发出,修复一些 bug: 3.22.07.3 我们发布了 3.22.07.3,这是个基于 3.22.07.01 的 bug 修复版本。 某些场景下执行大包语句出现 hang、Lost connection... 两张表通过非分片键关联查询,出现内存泄露 LOAD DATA&nb

2023-07-08

Mybatis-Flex v1.4.7 已经发布,优雅的 Mybatis 增强框架 此版本更新内容包括: 新增:@RelationManyToMany @RelationManyToOne @RelationOneToMany @RelationOneToOne 4 个注解用于关联查询 新增:为 QueryMethods 添加更多的 SQL 函数重载,感谢 @王帅 新

2023-09-22

使用 application.properties 的 spring boot 单数据源配置 2. 多表关联插入,更新,删除 3.DateUtil 增加判断日期格式,计算年龄 4.CurrencyArithmetic 变量 bug 5.CacheSuidStruct 表名不区分大小写 6.MongodbObjSQLRichExt 完善拦截器及上下文信息管理 7