MybatisPlus 新版本发布,更换Maven坐,支持流式查询

JAVA架构日记

共 3327字,需浏览 7分钟

 · 2023-10-09

      
      <!--快照版本,SpringBoot3 将使用如下Maven坐标-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
    <version>3.5.4-SNAPSHOT</version>
</dependency>
新特性
  • 新增自增主键字段是否允许插入空值,可使用方法注入覆盖Insert(boolean ignoreAutoIncrementColumn)或Insert(String name, boolean ignoreAutoIncrementColumn)控制自增主键是否支持写入行为.

  • 内置泛型提取,支持非Spring体系项目使用.

  • BaseMapper新增update(wrapper)更新方法.

  • BaseMapper新增流式查询方法对大数据查询支持.

            
    void selectBatchIds(@Param(Constants.COLL) Collection<? extends Serializable> idList, ResultHandler<T> resultHandler);

    void selectByMap(Map<String, Object> columnMap, ResultHandler<T> resultHandler);

    void selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<T> resultHandler);

    void selectList(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<T> resultHandler);

    void selectMaps(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<Map<String, Object>> resultHandler);

    void selectMaps(IPage<? extends Map<String, Object>> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<Map<String, Object>> resultHandler);

    void selectObjs(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper, ResultHandler<E> resultHandler);

    //使用示例

    baseMapper.selectList(page, Wrappers.emptyWrapper(), resultContext -> System.out.println(resultContext.getResultObject()));

  • 新增批量操作处理方法

            
    MybatisBatch.Method<H2User> mapperMethod = new MybatisBatch.Method<>(H2UserMapper.class);

    List<BatchResult> batchResults = MybatisBatchUtils.execute(sqlSessionFactory, h2UserList, mapperMethod.insert());

  • 代码生成器元数据信息公开tableName与columnName字段访问.

  • 新增mybatis-plus-spring-boot3-starter与mybatis-plus-spring-boot3-starter-test支持SpringBoot3.

  • 支持插件缺省注入,当无MybatisPlusInterceptor注入时,支持com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor自动注入.

  • 升级源码Jdk开发版本至Java21.

  • 升级gradle-wrapper至8.4-rc-1.

  • 升级kotlin-gradle-plugin至1.9.20-Beta.

  • 升级SpringBoot2.x版本至2.7.15.

  • 升级lombok至1.18.30.

优化

  • mybatis-plus-extension中mybatis-spring依赖修改为可选依赖

  • spring-boot-starter减少无用的配置提示

  • 字段填充处理器提取去除固定参数提取,支持更宽松的mapper方法参数提取填充处理

            
    void testMyMethod1(@Param("coll") List<User> userList);

    void testMyMethod2(@Param("list") List<User> userList);

    void testMyMethod3(@Param("collection") List<User> userList);

    void testMyMethod4(List<User> userList);

    // 新版本开始支持,还可以有多参数.

    void testMyMethod5(@Param("userList") List<User> userList);

  • 去除com.baomidou.mybatisplus.core.toolkit.ReflectionKit.setAccessible方法调用,防止高版本Jdk移除

  • 调整selectOne方法(配合流式处理,最多提取两行数据,日志不再打印总记录数).

  • 优化selectObjs方法返回值,减少类型强制转换.

  • ActiveRecord模式下deleteById(逻辑删除)方法支持自动填充功能.

修复

  • 修复Insert无字段时执行SQL报错.

  • 修复高版本JDK下lambda无法执行IDEA调试.

  • 修复LambdaQuery中select,groupBy,orderBy,orderByAsc,orderByDesc提示的警告,新增对应doXxx方法支持重写.

  • 修复inject-sql-session-on-mapper-scan无配置提示.

  • 修复@OrderBy搭配@TableId排序字段错误.

  • 修复Service中根据主键逻辑删除时类型不匹配导致的错误.

  • 修复分页插件Count与自定义ResultHandler冲突.

  • 修复字段填充处理器可能会出现重入问题



浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报