当前位置: 首页 > news >正文

MyBatis-Flex 学习与整理

MyBatis-Flex 学习与整理

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

一、简介

Mybatis-Flex 是一个优雅、轻量且高性能的 Mybatis 增强框架。它不仅能轻松连接各种数据库,还内置了强大的 QueryWrapper,极大减少 SQL 编写工作,降低出错概率。通过 MyBatis-Flex,我们可以提高开发效率和体验,将更多精力投入业务开发。


二、特点

1. 轻量

  • 无第三方依赖:除了 MyBatis 本身,无其它依赖。
  • 无拦截器设计:通过 SqlProvider 实现,不依赖拦截器。
  • 无 SQL 解析过程:执行过程中无需 SQL Parse。
  • 优点
    • 极高性能
    • 代码跟踪、调试更容易
    • 更高的可控性

2. 灵活

  • 支持 Entity 的增删改查、分页查询。
  • 提供 Db + Row 工具,无需实体类即可操作数据库。
  • 内置 QueryWrapper,轻松实现多表查询、连接查询、子查询等场景。

3. 强大

  • 支持所有主流关系型数据库,可通过方言扩展更多类型。
  • 支持多主键、逻辑删除、乐观锁、数据脱敏、数据审计、数据填充等高级功能。

三、与同类框架对比

功能/特点MyBatis-FlexMyBatis-PlusFluent-MyBatis
Entity 基本增删改查
分页查询
分页查询总量缓存
无 SQL 解析设计
多表查询 from
多表查询 join
多表查询 union
多主键/复合主键
字段 typeHandler
除 MyBatis 无依赖
QueryWrapper RPC传输未知
逻辑删除
乐观锁
SQL审计
数据填充✔️(收费)
数据脱敏✔️(收费)
字段权限/加密/字典回写✔️(收费)
Db + Row
Entity监听
多数据源支持需其它框架/收费
多租户/动态表名/schema✅/❌

性能对比

  • 查询单条数据速度约为 MyBatis-Plus 的 5~10+ 倍
  • 查询 10 条数据速度约为 MyBatis-Plus 的 5~10 倍
  • 分页查询速度约为 MyBatis-Plus 的 5~10 倍
  • 数据更新速度约为 MyBatis-Plus 的 5~10+ 倍

详细性能测试


四、支持的数据库类型

数据库描述
mysqlMySQL 数据库
mariadbMariaDB 数据库
oracleOracle11g及以下数据库
oracle12cOracle12c及以上数据库
db2DB2 数据库
hsqlHSQL 数据库
sqliteSQLite 数据库
postgresqlPostgreSQL 数据库
sqlserverSQLServer 数据库
dm达梦数据库
xugu虚谷数据库
kingbasees人大金仓数据库
详见官网文档

可通过自定义方言持续扩展更多数据库支持。


五、快速开始

Step 1:创建数据库表

-- 创建数据库
CREATE DATABASE IF NOT EXISTS testdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;-- 使用数据库
USE testdb;-- 创建 user 表
CREATE TABLE IF NOT EXISTS user (id BIGINT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT
);INSERT INTO tb_account(id, user_name, age, birthday)
VALUES (1, '张三', 18, '2020-01-11'),(2, '李四', 19, '2021-03-21');

Step 2:创建 Spring Boot 项目并添加 Maven 依赖

可使用 Spring Initializer 快速初始化。

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>${spring-boot.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>${spring-boot.version}</version></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><version>8.0.33</version></dependency><dependency><groupId>com.mybatis-flex</groupId><artifactId>mybatis-flex-spring-boot-starter</artifactId><version>${mybatis-flex.version}</version></dependency></dependencies>

Step 3:Spring Boot 项目配置

application.properties 配置数据源:

spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Drivermybatis-flex.mapper-locations=classpath:mapper/*.xml
mybatis-flex.type-aliases-package=com.example.demo.entity 

六、总结

MyBatis-Flex 是 MyBatis 的增强版,几乎集成了 MyBatis-Plus、jOOQ、Fluent-Mybatis 的所有优点,值得开发者深入探索。

  • 官方网站
http://www.dtcms.com/a/285165.html

相关文章:

  • LeNet-5 详解:从理论到实践
  • HTML前端性能优化完整指南
  • LeetCode 234:回文链表
  • 文件类型说明
  • H7-TOOL脱机下载后,自动重连RTT,CAN和串口助手三合一模式方法,方便项目测试(2025-07-16)
  • Spring Boot 分层架构详解:Controller、Service、Mapper...
  • C++网络编程 5.TCP套接字(socket)通信进阶-基于多线程的TCP多客户端通信
  • 鸿蒙状态栏操作
  • 能碳管理平台:企业碳减排解决方案绿色工厂达标工具
  • Trae IDE:打造完美Java开发环境的实战指南
  • 基于深度学习的电信号分类识别与混淆矩阵分析
  • AI 总结工作报告
  • 【人工智能agent】--dify版本更新(通用)
  • 错误经验一:计算两个整数a和b的和
  • Paimon 动态分桶
  • 如何优雅处理 Flowable 工作流的 TaskAlreadyClaimedException?
  • SpringBoot02-application配置文件
  • 行业研究 | 2025金融可观测性实践与趋势洞察报告重磅发布!
  • 数据结构自学Day9: 二叉树的遍历
  • 克鲁斯焊接机器人保护气省气方案
  • JS - - - - - 数组乱序排序「进阶版」
  • c++:类型转换函数
  • mongodb-org-mongos : Depends: libssl1.1 (>= 1.1.1) but it is not installable
  • 基于LSTM的机场天气分析及模型预测
  • .NET Core EFCore零基础快速入门简单使用
  • 微信远程控制系统2.0
  • 二叉树的总结
  • mysql 字符集不一致导致索引失效问题
  • 为何“白名单媒体”是性价比之选?
  • 2025年视频超高清技术应用全景介绍