与MyBatis-Plus一样MyBatis-Flex也是一个MyBatis的增强框架,它与MyBatis-Plus相比到底有什么优势呢?下面我们就来看看MyBatis-Flex。
MyBatis-Flex优势
更加轻量级
MyBatis-Flex除了MyBatis依赖之外几乎在没有其他的第三方依赖,因此在使用的时候直接引入即可,具有更高的自主性以及稳定性。
更加灵活
MyBatis-Flex提供了非常灵活的查询代理QueryWapper,并且支持多种查询方式,支持乐观锁、数据脱敏、数据填充等操作。
更高性能
MyBatis-Flex 通过其独有的架构方式,不需要任何MyBatis拦截器来进行增强,并且在SQL执行的过程中也没有多余的处理,所以整个操作几乎没有其他性能损耗。
MyBatis-Flex与MyBatis-Plus的比较
除了与MyBatis-Plus相同的功能之外,MyBatis-Flex还提供了如下的一些功能
- MyBatis-Flex支持多表查询,支持from的多表查询,支持了通过left join、inner join等方式进行链表查询,支持通过union、union all 进行的联表查询操作
- MyBatis-Flex提供了一对一查询、一对多查询、多对一查询以及多对多查询。
- MyBatis-Flex支持了多主键、复合主键操作
- MyBatis-Flex提供的QueryWapper可以在微服务的情况下支持RPC操作
- MyBatis-Flex 提供了数据脱敏、字段鉴权、字段加密以及字典回写等功能,并且这些功能在MyBatis-Plus中是收费功能。
- MyBatis-Flex 自己就支持了多数据源的操作,而MyBatis-Plus则是需要第三方框架才可以。
- MyBatis-Flex 多数据源之间还支持事务操作,可以利用@Transactional注解来开启事务操作。
- MyBatis-Flex 还支持了动态动态的Schema操作。
当然除了这些MyBatis-Flex有异于MyBatis-Plus的内容之外其他的基本上二者是相似的,不过。从SQL的执行效率上来讲,MyBatis-Flex与MyBatis-Plus的差距还是有非常大的
- 在单条数据查询速度方面,MyBatis-Flex要比MyBatis-Plus快5~10倍左右
- 在分页查询速度方面大概也要比MyBatis-Plus快5~10倍
- 在数据更新方面的速度要比MyBatis-Plus快5~10倍+
对于原生的MyBatis的支持
MyBatis-Flex是MyBatis的增强框架,以其极低的侵入代码几乎不会影响到MyBatis的原有功能,并且在MyBatis-Flex中也还保留了对于MyBatis原生注解的的支持。并且支持的效率还都挺高。
例如保留了@Select注解、@Delete注解、@Update注解、@Insert注解,并且在此注解的基础上增加了@InsertProvider注解、@DeleteProvider注解、@UpdateProvider注解、@SelectProvider注解并且这些新增的注解与原生 MyBatis注解用法是一样的。
保留了通过XML映射文件来编写SQL语句的功能,只需要在使用之前告诉Mapper.xml文件的映射路径。
mybatis-flex:
mapper-locations:
- classpath*:/mapper/*.xml
并且MyBatis-Flex在基于XML的基础上提供了XML分页解决方案。方便用户在使用XML的时候对数据采用分页形式进行查询操作。
MyBatis-Flex支持的数据库类型
MyBatis-Flex几乎支持所有的主流的数据库,包括MySQL、Oracle、DB2、H2、PostGreSql、Doris、HiveSQL、sqllite等
总结
上面我们介绍了MyBatis-Flex,以及MyBatis-Flex比MyBatis-Plus更有优势的地方,并且知道在MyBatis-Flex还提供了很多开源免费的实用功能,真的是不用在担心数据安全问题了。