新增多数据源进行关联查询,MyBatis-Flex v1.4.8 发布

科技资讯 投稿 4900 0 评论

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.7 中增加了如下的 4 个关联查询注解,他们分别是:

    RelationOneToOne:用于一对一的场景
  • RelationOneToMany:用于一对多的场景
  • RelationManyToOne:用于多对一的场景
  • RelationManyToMany:用于多对多的场景

在 v1.4.7 的基础上,这些注解又新增了 dataSource 的配置,可以用于指定查询某个数据源的内容,例如:

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)

 

MyBatis-Flex v1.4.8 更新如下:

    新增:@RelationXXX 相关注解添加可以指定 dataSource 的配置功能
  • 新增:添加 BaseMapper.insertSelectiveWithPk() 方法
  • 新增:QueryWrapper 构建的 SQL 添加 If, IfNull 支持,感谢 @王帅
  • 新增:添加 FlexAssert 类,用于常见的异常条件断言,感谢 @王帅
  • 优化:为 APT 添加 final 关键字以及字段排序的功能,感谢 @王帅
  • 优化:APT 的 large 字段或者 logicDelete 字段不应被添加在 default_column 中,感谢 @王帅
  • 优化:移动 BaseMapper.doPaginate 到 MapperUtil,感谢 @王帅
  • 优化:完善 EntitySqlProvider、RowSqlProvider 等的相关 javadoc 内容,感谢 @王帅
  • 优化:重构逻辑删除和多租户代码,在必要时其条件应该往前移动版本号#I7JDJ2:建议updateByQuery 方法也执行 invokeOnUpdateListener 监听器
  • 修复:QueryWrapper 在构建 属性.in(select from...) 时出错的问题
  • 文档:补充增删改查新添加的 BaseMapper 的相关方法

 

进一步了解 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 的配置选项
基于 NT 架构的全新 QQ Windows 版正式发布 爱奇艺客户端“白嫖”电视机,后台满速上传 美国将限制中国使用亚马逊、微软等提供训练 AI 模型的云服务 2023 年收入最高的技术岗位 资金严重短缺,又一流行开源项目宣布停止功能开发 Threads 注册量已破三千万,后端基于 CPython 深度“魔改” LeaferJS 发布:开源、性能强悍的 2D 图形库 Visual Studio Code 1.80 发布,支持终端图片功能 印度政府成立 6G 联盟,宣布成为 6G 电信技术全球领导者 deepin 采用 Asahi Linux 适配 Apple M1

编程笔记 » 新增多数据源进行关联查询,MyBatis-Flex v1.4.8 发布

赞同 (27) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽