mybatisplus最新版本,MybatisPlus 发布 3.5.3.2 版本,你要的功能都更新了

科技资讯 投稿 5300 0 评论

mybatisplus最新版本,

Mybatis-Plus 是一款 MyBatis 的增强工具包,简化 CRUD 操作。启动加载 XML 配置时注入单表 SQL 操作,为简化开发工作、提高生产率而生。Mybatis-Plus 启动注入动态 SQL 脚本、性能更优,让你专注业务快速敏捷开发。  

演示例子:https://gitee.com/baomidou/mybatis-plus-samples

官方文档:https://baomidou.com/

 

回应用户关于同类框架对比说明:

MP 不会去做无意义的对比(很多设定一开始就是不公平的,或者说非生产环境的模拟一些简单 SQL 的执行对比毫无意义),也不会片面的夸大自身优势,把自己有的功能别人没有的列出来,别人有的功能自己没有的不列出来(当然也不排斥客观公正的对比,好坏让用户自己去感受)。

MP 相关特性是完全支持 XML  动态 SQL 执行的,理论上性能会低于那些静态硬编码框架的执行速度(但是差距也是 ms 毫秒之间的,对于实际生产无任何意义真正的性能瓶颈在 DB IO 上面),因为 MP 存在动态 OGNL 判断以及复杂 SQL 智能优化存在耗时(这部分耗时是值得的,优化后的 SQL 会在 DB 执行上面取得更加优秀的执行速度)。

 

当前版本亮点

1,动态 SQL 智能优化支持本地缓存加速解析,更完善的租户复杂 XML 动态 SQL 支持,静态注入缓存如下:

static { // 默认支持序列化 FstSerialCaffeineJsqlParseCache,JdkSerialCaffeineJsqlParseCache JsqlParserGlobal.setJsqlParseCache(new JdkSerialCaffeineJsqlParseCache( (cache) -> cache.maximumSize(1024) .expireAfterWrite(5, TimeUnit.SECONDS)) );}

2,代码生成器支持更多的自定义特性,查看测试用例

com.baomidou.mybatisplus.generator.samples.H2CodeGeneratorTest;

3,大幅度减少堆内存占用加速启动速度,优化动态 SQL 解析注入方法精简,实测近500张表的超级单体减少40%+的堆内存占用。

4,完善 Spring Boot3 + JDK 17 本地 Native 的构建,暂不支持 Lambda 方法的使用。

5,增星瑞格数据库支持( 其它国产数据库需要支持欢迎 PR )

6,mybatis 升级 3.5.13 版本

7,乐观锁支持 java.time.Instant 内置执行 SQL 做了查询提前优化

8,完善 Wrapper 支持 TypeHandler 类型转换查询及其它 SQL 参数的动态映射配置

Wrappers.<H2User>lambdaQuery().apply("name={0,typeHandler=" + H2userNameJsonTypeHandler.class.getCanonicalName() + "}", "{\"id\":101,\"name\":\"Tomcat\"}"))

9,脚本维护 DDL 功能支持存储过程脚本执行、支持自定义分隔符

@Componentpublic class MysqlDdl implements IDdl { /** * 执行 SQL 脚本方式 */ @Override public List<String> getSqlFiles() { return Arrays.asList( "db/tag-schema.sql", // `3.5.3.2` + 版本,支持执行存储过程,如下文件追加 `#$$` 其中 `$$` 为自定义执行完整 SQL 分隔符, // 存储过程执行脚本 `END` 结尾追加分隔符 `END;$$` 表示脚本结束 "db/procedure.sql#$$", "D:\\db\\tag-data.sql" ); }} // 切换到 mysql 从库,执行 SQL 脚本ShardingKey.change("mysqlt2");ddlScript.run(new StringReader("DELETE FROM user;\n" + "INSERT INTO user (id, username, password, sex, email) VALUES\n" + "(20, 'Duo', '123456', 0, 'Duo@baomidou.com');"));

10,参数填充器支持多参数填充

11,更加完善的注入脚本检测处理方法

Wrappers.query()// 开启自动检查 SQL 注入.checkSqlInjection().orderByDesc("任意前端传入字段") // 手动校验方式SqlInjectionUtils.check("任意前端传入字段")

 

其它亮点看升级日志,感恩一路支持。

升级日志

    feat: 升级mybatis至3.5.13,mybatis-spring至2.1.1

  • feat: jsqlparser提供统一解析类,可配置解析函数,并加入缓存选项

  • feat: 增加Sequence初始化debug日志

  • feat: 参数填充器支持多参数填充

  • feat: BaseMapper新增selectMaps(page, wrapper)与selectList(page, wrapper)方法

  • feat: 乐观锁字段支持 java.time.Instant

  • feat: wrapper#apply支持配置mapping比如column={0,javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler}

  • feat: 调整 QueryWrapper 需要主动开启检查 SQL 注入过滤(移除掉wrapper的orderby的sql过滤功能)

  • feat: 新增星瑞格数据库支持

  • feat: updateWrapper#setSql方法支持动态入参参考wrapper#apply方法

  • feat: 自动 SQL 维护 DDL 支持 SQL 执行存储过程

  • perf: ktWrapper加强泛型限制

  • fix: 修复在选择springdoc文档注释时entity描述异常

  • fix: 在主键的IdType为AUTO的情况下,Table#getAllInsertSqlColumnMaybeIf("xx.")所生成sql错误问题

  • fix: 租户插件支持update set subSelect的情况

  • fix: 修复高版本Jdk提示非法反射警告(Illegal reflective access by com.baomidou.mybatisplus.core.toolkit.SetAccessibleAction)

  • fix: 修复高版本Jdk插件动态代理反射错误 (Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible)

  • fix: 修复路径替换将原有的“.”替换成了文件分隔符“/”

  • fix: 修复Beetl模板引擎无法生成注释

  • fix: 修复Types.DOUBLE类型无法映射

  • fix: 修复转换父类公共字段报错

  • fix: 修复生成器无法通过cfg.取值

  • fix: 修复单元测试下MockBean时事务回滚失败

  • fix: 修复Warpper类nonEmptyOfWhere方法命名不规范,导致Ognl未正确缓存带来的执行开销

  • fix: ClickHouseQuery类的tableComment()方法返回表注释字段为comment

  • fix: 修复在选择springdoc文档注释时entity描述异常问题

  • fix: Table#getAllInsertSqlColumnMaybeIf("xx.")下的sql生成错误问题

  • fix: Db类增加根据实体不为空的字段条件查询方法重载

  • fix: 生成器对于Kotlin的Entity文件的superEntityClass的错误

  • fix: 修复springdoc freemarker模式下 表注释取值取不到

  • opt: 增强参数填充处理器,防止因参数名称与填充名称一致类型不匹配导致转换错误

  • opt: 优化方法注入,去除SelectPage,SelectMapsPage,SelectByMap,DeleteByMap注入

  • opt: 减少MappedStatement堆内存占用

  • opt: 解决PluginUtils重复获取元数据带来的性能消耗

  • opt: 注入方法去除多余的换行符

  • opt: 去除SqlRunner持有的sqlSessionFactory变量

  • opt: 解决Sequence初始化多次问题(自定义情况下可不创建默认主键生成器)

  • opt: 优化 SqlHelper#getMapper 返回泛型

  • opt: 去除SqlRunner持有的sqlSessionFactory变量

  • docs: 修正DdlHelper注释错误

华为正式发布 HarmonyOS 4 Vim 之父 Bram Moolenaar 因病逝世 ChromeOS 将浏览器和操作系统拆分独立 哔哩哔哩(B 站)站又崩了 HarmonyOS NEXT:使用全自研内核 Nim v2.0 正式发布,命令式编程语言 阮一峰发布《TypeScript 教程》 Visual Studio Code 1.81 发布 树莓派月产能已达到 100 万台 某国产电商被提名 Pwnie Awards“最差厂商奖”

编程笔记 » mybatisplus最新版本,MybatisPlus 发布 3.5.3.2 版本,你要的功能都更新了

赞同 (28) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽