java小菜机一枚 2024-04-25 13:36 采纳率: 91.3%
浏览 16
已结题

mybatisplus的total为0

mybatisplus的total为0,试了很多种办法都没有用,能帮我看看吗?我用的mybatis-plus3.5.5,写了分页配置。

@Configuration
public class MybatisConfig {

    @Bean(name = "mybatisPlusInterceptor")
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        paginationInnerInterceptor.setOptimizeJoin(true);
        paginationInnerInterceptor.setDbType(DbType.MYSQL);
        paginationInnerInterceptor.setOverflow(true);
        interceptor.addInnerInterceptor(paginationInnerInterceptor);
        return interceptor;
    }

    @Bean(name = "SqlSqlSessionFactory")
    public SqlSessionFactory SqlSqlSessionFactory(@Qualifier("mybatisPlusInterceptor") MybatisPlusInterceptor mybatisPlusInterceptor) throws Exception{
        MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
        // 分页,注册
        bean.setPlugins(mybatisPlusInterceptor);
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/*.xml"));
        return bean.getObject();
    }

}

引入的依赖

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.5</version>
        </dependency>
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
        </dependency>
  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-25 13:36
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在使用MyBatis Plus进行分页查询时遇到了问题,total始终返回0。首先,确保你已经正确地配置了分页插件,并且在执行分页查询的方法上使用了@PageableDefault注解(如果你是Spring Boot项目)或者在查询方法内部显式调用了分页对象。

    这里有一个可能的解决方案:

    1. 确保你的实体类实现了BaseEntity接口(来自MyBatis Plus),这样MyBatis Plus才能正确处理主键。
    import com.baomidou.mybatisplus.annotation.IdType;
    import com.baomidou.mybatisplus.annotation.TableId;
    
    public class YourEntity extends BaseEntity<YourEntity, Integer> {
        private static final long serialVersionUID = 1L;
    
        @TableId(value = "id", type = IdType.AUTO)
        private Integer id;
        // 其他字段...
    }
    
    1. 在你的Service层或Repository层的查询方法上添加@PageableDefault注解(如果你的项目是基于Spring Data JPA的,请忽略这一步,因为MyBatis Plus不支持Spring Data JPA的Pageable注解):
    import org.springframework.data.domain.Page;
    import org.springframework.data.domain.Pageable;
    
    public interface YourEntityService {
        Page<YourEntity> findAll(Pageable pageable);
    }
    
    // 或者,在Repository中:
    public interface YourEntityRepository extends BaseMapper<YourEntity> {
        List<YourEntity> findAllBy(Pageable pageable);
    }
    
    1. 如果你是在Service层手动创建分页对象,确保你正确设置了分页参数:
    import com.baomidou.mybatisplus.core.metadata.IPage;
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import org.springframework.stereotype.Service;
    
    @Service
    public class YourEntityServiceImpl implements YourEntityService {
        private final YourEntityRepository yourEntityRepository;
    
        public YourEntityServiceImpl(YourEntityRepository yourEntityRepository) {
            this.yourEntityRepository = yourEntityRepository;
        }
    
        @Override
        public IPage<YourEntity> findAll(Pageable pageable) {
            Page<YourEntity> page = new Page<>(pageable.getPageNumber(), pageable.getPageSize());
            return yourEntityRepository.findAll(page);
        }
    }
    
    1. 最后,检查一下你的数据库连接是否正常,以及SQL语句是否可以正确返回数据。你可以在控制台打印或者使用IDEA等工具查看执行的SQL语句,确认没有语法错误。

    如果你按照上述步骤操作还是存在问题,那么可能是其他原因导致的,比如查询条件有误、数据库表中确实没有数据或者数据被锁定等情况。在这种情况下,建议你提供具体的查询方法和详细的调试信息以便进一步分析。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 4月25日

悬赏问题

  • ¥15 C++ 菜单窗口独立出来,可以随意移动放大缩小。
  • ¥15 java代码写在记事本上后在cmd上运行时无报错但又没生成文件
  • ¥15 关于#python#的问题:在跑ldsc数据整理的时候一直抱这种错误,要么--out识别不了参数,要么--merge-alleles识别不了参数(操作系统-linux)
  • ¥15 PPOCRLabel
  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?