news 2026/2/27 2:47:25

MyBatis-Flex来了!完爆MyBatis-Plus?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MyBatis-Flex来了!完爆MyBatis-Plus?

Mybatis-Flex 是一个优雅的 Mybatis 增强框架,它非常轻量、同时拥有极高的性能与灵活性。我们可以轻松的使用 Mybaits-Flex 链接任何数据库,其内置的 QueryWrapper^亮点 帮助我们极大的减少了 SQL 编写的工作的同时,减少出错的可能性。

总而言之,MyBatis-Flex 能够极大地提高我们的开发效率和开发体验,让我们有更多的时间专注于自己的事情。

官网文档:https://mybatis-flex.com/

01

Mybatis-Flex的有什么特点?

轻量:

除了 MyBatis,没有任何第三方依赖轻依赖、没有任何拦截器,其原理是通过 SqlProvider 的方式实现的轻实现。同时,在执行的过程中,没有任何的 Sql 解析(Parse)轻运行。这带来了几个好处:

1、极高的性能;

2、极易对代码进行跟踪和调试;

3、把控性更高。

如果你近期准备面试跳槽,建议在ddkk.com在线刷题,涵盖 一万+ 道 Java 面试题,几乎覆盖了所有主流技术面试题,还有市面上最全的技术五百套,精品系列教程,免费提供。

灵活:

支持 Entity 的增删改查、以及分页查询的同时,Mybatis-Flex 提供了 Db + Row^灵活 工具,可以无需实体类对数据库进行增删改查以及分页查询。与此同时,Mybatis-Flex 内置的 QueryWrapper^灵活 可以轻易的帮助我们实现 多表查询、链接查询、子查询 等等常见的 SQL 场景。

强大:

支持任意关系型数据库,还可以通过方言持续扩展,同时支持 多(复合)主键、逻辑删除、乐观锁配置、数据脱敏、数据审计、 数据填充 等等功能。

02

Mybatis-Flex和同类框架对比

1)功能对比:

2)性能对比:

这里直接贴测试结果:

  • MyBatis-Flex 的查询单条数据的速度,大概是 MyBatis-Plus 的 5 ~ 10+ 倍。

  • MyBatis-Flex 的查询 10 条数据的速度,大概是 MyBatis-Plus 的 5~10 倍左右。

  • Mybatis-Flex 的分页查询速度,大概是 Mybatis-Plus 的 5~10 倍左右。

  • Mybatis-Flex 的数据更新速度,大概是 MyBatis-Plus 的 5~10+ 倍。

具体性能对比测试,移步:

https://mybatis-flex.com/zh/intro/benchmark.html

03

Mybatis-Flex支持的数据库类型

MyBatis-Flex 支持的数据库类型,如下表格所示,我们还可以通过自定义方言的方式,持续添加更多的数据库支持。

04

快速开始

第 1 步:创建数据库表

CREATETABLEIFNOTEXISTS`tb_account` ( `id` INTEGER PRIMARY KEY auto_increment, `user_name`VARCHAR(100), `age` INTEGER, `birthday` DATETIME ); INSERTINTO tb_account(id, user_name, age, birthday) VALUES(1, '张三', 18, '2020-01-11'), (2, '李四', 19, '2021-03-21');

第 2 步:创建 Spring Boot 项目,并添加 Maven 依赖

TIP:可以使用 Spring Initializer 快速初始化一个 Spring Boot 工程。

需要添加的 Maven 主要依赖示例:

<dependencies> <dependency> <groupId>com.mybatis-flex</groupId> <artifactId>mybatis-flex-spring-boot-starter</artifactId> <version>1.5.3</version> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> <!-- for test only --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>

第 3 步:对 Spring Boot 项目进行配置

在 application.yml 中配置数据源:

# DataSource Config spring: datasource: url:jdbc:mysql://localhost:3306/flex_test username:root password:12345678

在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

@SpringBootApplication @MapperScan("com.mybatisflex.test.mapper") publicclassMybatisFlexTestApplication{ publicstaticvoidmain(String[] args){ SpringApplication.run(MybatisFlexTestApplication.class, args); } }

第 4 步:编写实体类和 Mapper 接口

这里使用了 Lombok 来简化代码。

@Data @Table("tb_account") publicclassAccount{ @Id(keyType = KeyType.Auto) private Long id; private String userName; private Integer age; private Date birthday; }
  • 使用 @Table("tb_account") 设置实体类与表名的映射关系

  • 使用 @Id(keyType = KeyType.Auto) 标识主键为自增

Mapper 接口继承 BaseMapper 接口:

publicinterfaceAccountMapperextendsBaseMapper<Account> { }

这部分也可以使用 MyBatis-Flex 的代码生成器来生,功能非常强大的。详情进入:

https://mybatis-flex.com/zh/others/codegen.html

第 5 步:开始使用

添加测试类,进行功能测试:

importstatic com.mybatisflex.test.entity.table.AccountTableDef.ACCOUNT; @SpringBootTest classMybatisFlexTestApplicationTests{ @Autowired private AccountMapper accountMapper; @Test voidcontextLoads(){ QueryWrapper queryWrapper = QueryWrapper.create() .select() .where(ACCOUNT.AGE.eq(18)); Account account = accountMapper.selectOneByQuery(queryWrapper); System.out.println(account); } }

控制台输出:

Account(id=1, userName=张三, age=18, birthday=Sat Jan 1100:00:00 CST 2020)

以上的 示例 中, ACCOUNT 为 MyBatis-Flex 通过 APT 自动生成,只需通过静态导入即可,无需手动编码。

整体来讲,这个框架是Mybatis的增强版,几乎集成了mybatis plus、jooq、fluent mybatis的所有优点,大家可以探索一番。

官方网站:https://mybatis-flex.com

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/23 19:01:16

智能行李秤IC芯片/PCBA方案开发服务

一、智能行李秤方案产品介绍行李秤是一种方便快递员携带所设计出来的电子秤。主要由称重传感器&#xff0c;放大电路&#xff0c;AD转换电路&#xff0c;单片机电路&#xff0c;显示电路&#xff0c;键盘电路&#xff0c;等电路组成。电子产品方案设计开发开发的快递便携手提电…

作者头像 李华
网站建设 2026/2/24 21:04:37

深入解析Excel数组:从基础概念到高阶应用的完全指南

数组是Excel函数进阶的钥匙&#xff0c;掌握数组运算逻辑能让你的数据处理能力提升一个维度。 一、理解数组&#xff1a;Excel中的“数据容器” 数组是Excel中最强大的概念之一&#xff0c;它允许你将多个值作为一个整体来处理。本质上&#xff0c;数组就是一个有序的数据集合…

作者头像 李华
网站建设 2026/2/26 20:20:11

SolidWorks—山东某非标设计工厂1台主机共享给8个研发用

在山东某非标设计工厂中&#xff0c;工程师们面临着如何高效利用有限硬件资源的问题。SolidWorks作为三维机械设计的主流软件&#xff0c;对计算机性能有着较高要求&#xff0c;而传统的一人一机模式往往导致硬件资源闲置或分配不均。经过实践探索&#xff0c;该工厂成功实现了…

作者头像 李华
网站建设 2026/2/25 5:07:59

收藏!AI替代IT团队?资深技术人深度解析行业变革与未来出路

AI技术崛起导致全球IT行业裁员潮&#xff0c;传统IT面临四重冲击&#xff1a;AI效率革命、企业战略转移、经济成本重构、人才需求转变。IT从业者需通过三条路径进化&#xff1a;能力重构从工具掌握到思维升级、定位转换从技术支持到价值创造、人机协作从替代焦虑到增强信心。不…

作者头像 李华
网站建设 2026/2/21 16:17:35

不足4个百分点!华为智驾“逼近”英伟达

智驾计算平台之争&#xff0c;进入白热化阶段。一方面&#xff0c;没有自研芯片的辅助驾驶方案提供商尝试打通市场主流计算平台&#xff0c;从而满足不同车企的需求&#xff1b;另一方面&#xff0c;以自研芯片算法打造全栈方案的玩家&#xff0c;也在争夺市场主动权。去年底&a…

作者头像 李华
网站建设 2026/2/20 4:37:34

xactengine2_9.dll文件丢失找不到问题 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华