首页 > 其他分享 >Mybatis Plus 分页查询数据

Mybatis Plus 分页查询数据

时间:2023-09-18 11:55:54浏览次数:38  
标签:分页 System println Plus Mybatis import com page out

Mybatis Plus 分页查询数据

一、分页配置

package com.example.demomybatispage.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@MapperScan("com.example.demomybatispage.mapper")
@Configuration
public class MyBatisPlusConfig {
 

    /**
     * 添加分页插件
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//如果配置多个插件,切记分页最后添加
        //interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); 如果有多数据源可以不配具体类型 否则都建议配上具体的DbType
        return interceptor;
    }
 

}

二、使用分页功能

package com.example.demomybatispage;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demomybatispage.mapper.EnumDemoMapper;
import com.example.demomybatispage.pojo.EnumTest;
import com.example.demomybatispage.service.EnumDemoService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

@SpringBootTest
class DemoMybatisPageApplicationTests {


    @Autowired
    EnumDemoMapper enumDemoMapper;

    @Autowired
    EnumDemoService enumDemoService;

    /**
     * 测试mapper
     */
    @Test
    void contextLoads() {


        QueryWrapper<EnumTest> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().ge(EnumTest::getNum,1);

        Page<EnumTest> page = new Page<>(1, 5);
        //List<EnumTest> enumTests = enumDemoMapper.selectList(null);

        enumDemoMapper.selectPage(page, queryWrapper);

        System.out.println("总记录数:" + page.getTotal());
        System.out.println("总共多少页:" + page.getPages());
        System.out.println("当前页码:" + page.getCurrent());
        // 当前页数据
        List<EnumTest> users = page.getRecords();
        System.out.println(users);
    }

    /**
     * 测试service
     */

    @Test
    void demoServicePage() {

        QueryWrapper<EnumTest> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().ge(EnumTest::getNum,1);
        Page<EnumTest> page = new Page<>(1, 5);
        enumDemoService.page(page,queryWrapper);

        System.out.println("总记录数:" + page.getTotal());
        System.out.println("总共多少页:" + page.getPages());
        System.out.println("当前页码:" + page.getCurrent());
        // 当前页数据
        List<EnumTest> users = page.getRecords();
        System.out.println(users.size());
    }


    /**
     * 测试自定义
     */
    @Test
    void demoCustomizationPage() {

        QueryWrapper<EnumTest> queryWrapper = new QueryWrapper<>();
        queryWrapper.lambda().ge(EnumTest::getNum,1);
        Page<EnumTest> page = new Page<>(1, 20);
        enumDemoMapper.testPage(page);

        System.out.println("总记录数:" + page.getTotal());
        System.out.println("总共多少页:" + page.getPages());
        System.out.println("当前页码:" + page.getCurrent());
        System.out.println("每页的数量:" + page.getSize());
        // 当前页数据
        List<EnumTest> users = page.getRecords();
        System.out.println(users.size());
    }


}

mapper

package com.example.demomybatispage.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.demomybatispage.pojo.EnumTest;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface EnumDemoMapper extends BaseMapper<EnumTest> {

    /**
     * 测试分页插件
     *
     * @param page
     * @return
     */
    Page<EnumTest> testPage(Page<EnumTest> page);


}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.demomybatispage.mapper.EnumDemoMapper">

    <select id="testPage" resultType="com.example.demomybatispage.pojo.EnumTest">
        select * from enum_test
    </select>

</mapper>

标签:分页,System,println,Plus,Mybatis,import,com,page,out
From: https://www.cnblogs.com/firsthelloworld/p/17711513.html

相关文章

  • Mybatis 01 mybatis入门
    什么是MyBatis?MyBatis是一款优秀的持久层框架,用于简化JDBC开发MyBatis本是Apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。2013年11月迁移到Github官网:https://mybatis.org/mybatis-3/zh/index.html......
  • element plus
    https://element-plus.org/zh-CN/guide/design.html设计控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。用户决策:根据场景可给......
  • GsonFormatPlus
    CodeToolsGsonFormatPlus sun-menInstallto IntelliJIDEA2021.2Compatiblewith IntelliJ IDEA(Ultimate,Community,Educational),Android Studio and 15more   OverviewVersionsReviews ......
  • epplus 库 学习使用
    EPPlus是一个用于操作Excel文件的C#库,它提供了简单易用的API,可以让开发人员轻松读取、创建和编辑Excel文件。简单使用:ExcelPackage类:表示一个Excel文件,可以使用工作簿(Workbook)和工作表(Worksheet)来操作该Excel文件。它包含以下常用属性和方法:Workbook:表示Excel文件中的......
  • 「开源系统」mybatis-plus代码生成工具(自己基于官方的封装的,打包成了maven插件的方式)
    mybatis-plus代码生成工具本工具基于MyBatis-Plus的代码生成器,MyBatis-Plus官网:https://baomidou.com/,请尊重原作者作品。demo:https://gitee.com/javalaoniu/mybatis-code-maven-plugin-demo插件:https://gitee.com/javalaoniu/mybatis-plus-code-maven-plugin生成的项目......
  • 系统内存管理:虚拟内存、内存分段与分页、页表缓存TLB以及Linux内存管理
    虚拟内存虚拟内存是一种操作系统提供的机制,用于将每个进程分配的独立的虚拟地址空间映射到实际的物理内存地址空间上。通过使用虚拟内存,操作系统可以有效地解决多个应用程序直接操作物理内存可能引发的冲突问题。在使用虚拟内存的情况下,每个进程都有自己的独立的虚拟地址空间,它们......
  • mybatis jdbc java 字段类型转换
    在springmvc+mybatis+mysql数据表CREATETABLE`test_jdbc_java_type`(`id`int(11)NOTNULL,`_char`char(50)DEFAULTNULL,`_varchar`varchar(200)DEFAULTNULL,`_numeric`decimal(10,2)DEFAULTNULL,`_decimal`decimal(10,2)DEFAULTNULL,`_b......
  • 学习Mybatis-Plus的记录
    目录1.常用注解2.条件查询2.1.各种方式的查询2.2.AllEq用法2.3selectOne方法2.4lambda条件构造器2.5select不查出所有的字段2.6通用Mapper2.7自定义sql3.分页查询4.更新5.AR(ActiveRecord)模式6.主键策略7.Mp的配置1.常用注解@TableName用于在数据库表名和实体对......
  • SQL Server 2012分页获取数据的同时获取到总记录数(优化)
    ALTERPROCEDUREdbo.tpGetPageRecords(@OffSetRowNoINT,@FetchRowNoINT,@TotalCountINTOUT)ASSELECTCSTNO,CSTABBRFROMDBATABCWHERECSTABBRLIKE'A%'ORDERBYCSTNOOFFSET(@OffSetRowNo-1)*@FetchRowNoROWSFETCH......
  • 查询我的学习计划-分页数据查询
                 ......