概述
Mybatis有很多增强版,包括:Mybatis Plus、Fluent Mybatis、MyBatis Flex
MyBatis Plus
另起一篇,参考MyBatis Plus实战笔记
MyBatis Mate
MyBatis Plus官方发布的神器,支持分库分表,数据审计、数据敏感词过滤(AC 算法),字段加密,字典回写(数据绑定),数据权限,表结构自动生成 SQL 维护等,旨在更敏捷优雅处理数据。功能如下:
- 字典绑定
- 字段加密
- 数据脱敏
- 表结构动态维护
- 数据审计记录
- 数据范围(数据权限)
- 数据库分库分表、动态数据源、读写分离、数据库健康检查自动切换
引入依赖:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-mate-starter</artifactId>
</dependency>
字段加密
属性增加@FieldEncrypt
注解即可加密存储,查询时会自动解密,支持配置全局加密密钥算法,及注解密钥算法,可以实现 IEncryptor 注入自定义算法。
@FieldEncrypt(algorithm = Algorithm.PBEWithMD5AndDES)
private String password;
字段脱敏
属性字段增加@FieldSensitive
注解即可自动按照预设策略对源数据进行脱敏处理,SensitiveType 内置 9 种常用脱敏策略,如中文名、银行卡账号、手机号码等。
@FieldSensitive(type = SensitiveType.mobile)
private String mobile;
@FieldSensitive(type = "testStrategy")
private String username;
增加自定义脱敏策略:
@Configuration
public class SensitiveStrategyConfig {
@Bean
public ISensitiveStrategy sensitiveStrategy() {
return new SensitiveStrategy().addStrategy("testStrategy", t -> t + "***test***");
}
}
资源
Fluent Mybatis
阿里云云效产品团队开发的MyBatis增强框架。
资源
快速入门:Fluent MyBatis使用入门
阿里云官网内容平台:Let’s Fluent:更顺滑的 MyBatis
Mybatis Flex
官网:https://mybatis-flex.com/
GitHub:https://github.com/mybatis-flex/mybatis-flex
文档:https://mybatis-flex.com/zh/intro/comparison.html
Mybatis-Flex 是一个优雅的 Mybatis 增强框架,非常轻量、同时拥有极高的性能与灵活性。可以轻松的使用Mybaits-Flex连接任何数据库,内置QueryWrapper可极大减少SQL编写工作,减少出错可能性。几乎集成mybatis plus、jooq、fluent mybatis的所有优点。
特点:
- 轻量:除了 MyBatis,无任何第三方依赖、没有任何拦截器,其原理是通过 SqlProvider 的方式轻实现。同时,在执行的过程中,没有任何的 Sql 解析(Parse)。好处:
- 极高的性能
- 极易对代码进行跟踪和调试
- 把控性更高
- 灵活:支持 Entity 的增删改查、分页查询,提供 Db + Row灵活工具,可以无需实体类对数据库进行增删改查以及分页查询。内置的 QueryWrapper可以轻易实现 多表查询、链接查询、子查询 等常见的 SQL 场景。
- 强大:支持任意关系型数据库,还可以通过方言持续扩展,同时支持多(复合)主键、逻辑删除、乐观锁配置、数据脱敏、数据审计、 数据填充等功能
MyBatis Flex 支持几乎所有的数据库类型,还可以通过自定义方言的方式,持续添加更多的数据库支持。
<dependency>
<groupId>com.mybatis-flex</groupId>
<artifactId>mybatis-flex-spring-boot-starter</artifactId>
</dependency>
代码生成:https://mybatis-flex.com/zh/others/codegen.html
benchmark
https://mybatis-flex.com/zh/intro/benchmark.html