MyBatis-Flex v1.5.3 发布,进一步优化链式操作
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 审计... 等等等等。 这一切,免费且灵动。
在 v1.5.3 中,主要是优化了链式查询和链式更新的功能,如下是 MyBatis-Flex 一个简单的示例:
@SpringBootTest class ArticleServiceTest { @Autowired ArticleService articleService; @Test void testChain() { List<Article> articles = articleService.queryChain() .select(ARTICLE.ALL_COLUMNS) .from(ARTICLE) .where(ARTICLE.ID.ge(100)) .list() .forEach(System.out::println); } }
如果我们查询的是 vo、dto 之类的数据呢?
ArticleVo.java 定义如下:
public class ArticleVo { private Long id; private Long accountId; private String title; private String content; //评论量最多的内容 private Long maxComments; //getter setter }
查询代码如下:
ArticleVo articleVo = QueryChain.of(articleMapper) .select( ARTICLE.ALL_COLUMNS, max(ARTICLE.comments).as(ArticleVo::maxCommments) ) .from(ARTICLE) .where(ARTICLE.ID.ge(100)) .limit(1) .oneAs(ArticleVo.class);
数据更新?
@Test public void testUpdateChain2() { //更新数据 UpdateChain.of(Account.class) .set(Account::getAge, ACCOUNT.AGE.add(1)) .where(Account::getId).ge(100) .and(Account::getAge).eq(18) .update(); //查询所有数据并打印 QueryChain.of(accountMapper) .where(Account::getId).ge(100) .and(Account::getAge).eq(18) .list() .forEach(System.out::println); }
更多关于链式查询的内容,请异步官方文档:https://mybatis-flex.com/zh/base/chain.html
另外,这个版本还新增了对 ActiveRecord 的支持(可选),如下是 ActivieRecord 的一些示例:
保存数据:
Account.create() .setUserName("张三") .setAge(18) .setBirthday(new Date()) .save();
更新数据:
Account.create() .setAge(100) .where(Account::getId).eq(1L) .update();
查询 1 条数据:
Account.create() .where(Account::getId).eq(1L) .one();
更多关于 ActivieRecord 请参考:https://mybatis-flex.com/zh/base/active-record.html
MyBatis-Flex v1.5.3 更新如下:
- 新增:添加 UpdateChain 方便用于对数据进行更新
- 新增:添加对 ActiveRecord 设计模式的支持,感谢 @王帅
- 新增:代码生成器 ColumnConfig 增加 propertyType. 可以用于自定通用属性的类型。感谢 @Jerry
- 新增:添加 selectOneWithRelationsById(根据主表主键来查询 1 条数据) 方法,感谢 @barql
- 新增:QueryWrapper.groupBy 支持 Lambda 表达式的功能,感谢 @王帅
- 新增:QueryWrapper 添加
not like
构建的支持 - 优化:重命名 QueryWrapperChain 为 QueryChain,保存和 UpdateChain 统一
- 修复:
@Relation
关联查询注解,在指定 selectColumns 出错的问题,感谢 @zhy_black - 修复:代码生成器配置
camelToUnderline
属性时 entity 生成后编译错误的问题,感谢 @张春根 - 文档:优化 APT 的文档描述有错别字的问题,感谢 @淡定
- 文档:添加关于 ActiveRecord 的相关文档,感谢 @王帅
- 文档:修改代码生成器对 EnjoyTemplate 的描述错误的问题
- 文档:添加更多关于链式查询的相关文档
- 文档:重构文档链接,链式操作的相关文档
- 文档:修改代码生成器对 EnjoyTemplate 的描述错误的问题
进一步了解 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-Helper 开发插件:
这是一款高度自定义的 Mybatis-Flex IDEA 代码生成插件:
- 开源地址:https://gitee.com/djxchi/mybatis-flex-code-gen.git
- 视频简介:https://www.bilibili.com/video/BV1yV411g7Yd
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 实现字典回写
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
CoSec 2.2.0 发布,基于 RBAC 和策略的多租户响应式安全框架
基于 RBAC 和策略的多租户响应式安全框架 更新内容(v2.2.0) 🎉 🎉 🎉 全面支持Spring Boot 3 依赖:更新me.ahoo.cosid:cosid-bom版本v2.2.5 依赖:更新org.springframework.boot:spring-boot-dependencies版本v3.1.2 依赖:更新me.ahoo.cocache:cocache-bom版本v2.0.3 特性:新增MatcherFactoryRegister支持扫描注册 Spring 容器定义的ConditionMatcherFactory/ActionMatcherFactory增强 SPI 特性:EqConditionMatcher支持参数ignoreCase 特性:支持从路径变量(:/user/{id})中抽取参数,注入到安全上下文(request.path.var.*),以供ConditionMatcher使用 特性:EqConditionMatcher支持 Spel 表达式语言 { "name": "RequestPathVarTemplate", "action"...
- 下一篇
魔豆文库 moredoc v1.6.0 发布,文库系统解决方案,支持手机登录注册以及VIP会员功能
魔豆文库MOREDOC,使用 Go 语言开发实现的文库解决方案,为dochub文库的重构版本,支持 office (全部类型)、PDF、TXT、EPUB、MOBI 等多种文档格式的在线阅读浏览,支持无限级分类、文档批量上传、文档批量转换、全文搜索、云存储、网络爬虫、VIP会员、手机号登录注册以及支付宝和微信支付等功能,拥有简洁美观的用户视觉和功能体验。 技术栈 Golang :gin + gRPC + GORM Vue.js : nuxt2 + element-ui Database : MySQL 5.7+ 升级日志 社区版(开源版)升级日志 修复Linux下没法正确获取所有挂载磁盘及其空间使用率的问题 修复变更分类层级之后,文档所属分类错乱的问题 修复管理后台多次点击查询按钮不再触发数据查询的问题 修复个人主页、个人中心文档页在搜索文档时,翻页没带关键字的问题 支持对违规用户进行处罚,包括:禁止下载、禁止评论、禁止收藏、禁止上传以及禁用账户等 文档列表页,支持筛选免费和付费文档 其它页面布局和UI相关细节的调整优化 专业版升级日志 专业版升级内容包含社区版升级内容 修复全文搜索没法...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Hadoop3单机部署,实现最简伪集群
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS8编译安装MySQL8.0.19