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'

标签: none

添加新评论