MybatisPlus 3.3.0 没有MybatisPlusInterceptor类问题

公司项目使用的是mybatis-plus-extension 3.3.0依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-extension</artifactId>
    <version>3.3.0</version>
</dependency>

我个人之前使用的是mybatis-plus-boot-starter 3.5.3 依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3</version>
</dependency>

然后在我使用分页插件的时候,发现无法导入MybatisPlusInterceptor
1

网上搜索好久,没有搜到

下午偶然翻看老项目,返现并没有使用MybatisPlusInterceptor类,而是直接使用的PaginationInterceptor
在这里插入图片描述

如图写一个配置类,就可以使用mybatisPlus自带的分页功能了。

附代码:

import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan("com.your.mapper*")
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(false));
        return paginationInterceptor;
    }
    @Bean
    public MySqlInjector sqlInjector() {
        return new MySqlInjector();
    }
}

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MyBatis-Plus 3.3.0 中,批量插入可以使用 MyBatis 原生的批量插入方法,需要使用 `SqlSession` 中的 `insert` 方法。 具体地,可以使用以下代码进行批量插入操作: ```java List<User> userList = new ArrayList<>(); // 假设需要批量插入的 User 对象存放在 userList 中 SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH); try { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); for (User user : userList) { userMapper.insert(user); } sqlSession.commit(); } catch (Exception e) { sqlSession.rollback(); } finally { sqlSession.close(); } ``` 上述代码中,首先通过 `sqlSessionFactory` 获取 `SqlSession` 对象,并指定执行器类型为 `ExecutorType.BATCH`。然后,通过 `SqlSession` 的 `getMapper` 方法获取 `UserMapper` 接口的实例,然后循环遍历 `userList`,逐一插入数据。最后,调用 `SqlSession` 的 `commit` 方法提交事务,或者在出现异常时调用 `rollback` 方法回滚事务。 需要注意的是,如果插入的数据量较大,可能会导致内存溢出,可以通过调整 `batch` 的大小来控制批量插入的效率和内存占用。例如,可以将 `batch` 大小设置为 1000,即每插入 1000 条数据就进行一次批量插入操作: ```java final int batchSize = 1000; int count = 0; try { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); for (User user : userList) { userMapper.insert(user); if (++count % batchSize == 0) { sqlSession.flushStatements(); } } sqlSession.commit(); } catch (Exception e) { sqlSession.rollback(); } finally { sqlSession.close(); } ``` 上述代码中,使用了 `sqlSession.flushStatements()` 方法来刷新批量执行器中的语句,从而避免内存溢出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值