MyBatis 3.5.15 发布啦
1、MyBatis 最新版本
当前,MyBatis 最新版本是:MyBatis 3.5.15。
2、MyBatis 3.5.15 发布日期
2023年12月14日,MyBatis 开源社区发布了 MyBatis 3.5.15,具体介绍可以参考:https://github.com/mybatis/mybatis-3/releases
3、MyBatis 3.5.15 新特性
(1)修订了XNode#toString()
(2)性能方面的优化,当使用大量数据的时候,mappedColumnNames.contains方法利用的是list类的contains,现修改为使用set类的contains方法。
(3)升级 OGNL 为 3.4.2
(4)在SQL类里面增加生成动态sql的方法:applyIf方法和applyForEach方法。如下所示:
// Generate following SQL if b and c is null
// UPDATE test SET a=#{a} WHERE (id=#{id})
String sqlString = new SQL()
.UPDATE("test")
.applyIf(bean::hasA, sql -> sql.SET("a=#{a}"))
.applyIf(bean::hasB, sql -> sql.SET("b=#{b}"))
.applyIf(bean::hasC, sql -> sql.SET("c=#{c}"))
.WHERE("id=#{id}")
.toString();
// Generate following SQL if beans has two element
// INSERT INTO test (a, b, c) VALUES (#{list[0].a}, #{list[0].b}, #{list[0].c}), (#{list[1].a}, #{list[1].b}, #{list[1].c})
String sqlString = new SQL()
.INSERT_INTO("test")
.INTO_COLUMNS("a", "b", "c")
.applyForEach(beans, (sql, element, index) ->
sql.INTO_VALUES(
String.format("#{list[%s].a}", index),
String.format("#{list[%s].b}", index),
String.format("#{list[%s].c}", index)
).ADD_ROW())
.toString();
4、MyBatis 最新版本 Maven 依赖
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.15</version>
</dependency>
5、MyBatis 最新版本 Gradle 依赖
implementation group: 'org.mybatis', name: 'mybatis', version: '3.5.15'