Mybatis-Plus 是一款 MyBatis 的增强工具包,简化 CRUD 操作。启动加载 XML 配置时注入单表 SQL 操作 ,为简化开发工作、提高生产率而生。Mybatis-Plus 启动注入动态 SQL 脚本、性能更优,让你专注业务快速敏捷开发。
注意!变化部分功能介绍:
一,新增支持 GraaLVM Native Image 构建原生可执行文件
GraalVM是一个高性能的运行时环境,它不仅支持Java,还兼容JavaScript、Python等多种语言。其中,Native Image是其核心组件之一,它利用即时编译(AOT)技术,在应用程序部署前将其及其依赖转换为机器码,从而消除JVM的启动时间和内存开销。MybatisPlus 在当前版本引入一个新的模块 mybatis-plus-spring-boot-native-image 解决 AOT 编译问题,需要支持 Native 编译必须要引入该依赖。
案例 https://gitee.com/baomidou/mybatis-plus-native-image-demo
二,新增相关优化
1,默认 SQL 注入器及相关涉及 String.format 语句拼装修改为函数式处理或直接字符串拼接,提升组装 SQL 性能等
2,枚举处理及 Lambda 元数据解析引入缓存提升动态处理性能等
3,Lambda Wrapper 新增 eqOrIsNull 方法,自动识别 typeHandler 类型处理器并支持在 Groovy Kotlin 语言中使用能力等
4,逻辑删除新增支持 i18n 日期并支持了更新填充非逻辑删除的其它属性
5, BaseMapper 引入 selectWithCursor 游标查询方法,优化 selectOne 性能即使错误的条件框架底仓兜底不在多查一条记录
6,注入元数据 TableInfo 及生成器逆向表的元数据,新增扩展能力允许用户自定义修改属性
三,升级事项【注意】
为了解决 JDK 9 + 模块化编译 mybatis-plus-spring 包名冲突问题(早期分包支持 solon 国产 java web 开发框架引入的历史问题),目录 com.baomidou.mybatisplus.extension 包名修改为 com.baomidou.mybatisplus.spring 相关低版本升级需要调整重新导入新的包路径。
升级日志
-
fix: 修复 issues/6899 多租户插件 @Many 注解查无效问题
-
fix: 修复 issues/6938 HashMap 设置类型转换器异常
-
fix: 修复 issues/7081 解决拦截全表存在 schema 校验问题
-
fix: 修复 issues/6905 关于 saveOrUpdateBatch 导致 ParameterHandler 被重复执行问题
-
fix: 修复 issues/7056 支持 GraalVM Native 二进制编译问题
-
fix: 修复 issues/7027 支持 JDK 9+ 模块化包重名问题,注意 mybatis-plus-spring 模块下文件包名调整
-
feat: 新增 wrapper 支持 xml 别名配置
-
feat: 新增 mybatis-plus-spring-boot-native-image 模块支持 graalvm 编译能力
-
feat: 新增 Wrapper 支持自动识别 typeHandler 类型处理器
-
feat: 新增 Wrapper 对比 eqOrIsNull 方法
-
feat: 新增 i18n 逻辑删除日期格式及自动更新填充能力
-
feat: 新增 Groovy 支持 LambdaQueryWrapper 执行能力
-
feat: 新增 Kotlin 支持 LambdaQueryWrapper 执行能力
-
feat: 新增 MybatisEnumTypeHandler 枚举类型处理器支持缓存处理机制
-
feat: 新增 ITableFieldMetaInfoCustomizer 代码生成器扩展属性元数据处理能力
-
opt: 优化 Sequence 减少增加上下文切换
-
opt: 优化 LambdaQueryWrapper.sqlSelect 属性修改为 protected
-
opt: 优化 sql 注入性能调整为函数方式拼接减少字符串format使用
-
opt: 优化 Cursor 游标查询一条记录能力
-
opt: 优化 format 部分修改为字符串组合
-
opt: 优化 executeBatch 根据执行影响行数返回确定结果布尔值
-
opt: 优化 TableInfo 扩展允许返回新的自定义实例对象
-
opt: 优化 IJsonTypeHandler 处理逻辑