zoukankan      html  css  js  c++  java
  • MybatisPuls分页查询

    MybatisPuls分页查询

    基于这几篇博客修改

    [整合MybatisPlus测试]

    [MybatisPlus自动填充时间]

    [MybatisPlus乐观锁]

    配置分页插件MybatisPlusConfig

    package com.xiang.config;
    
    import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * Created by IntelliJ IDEA.
     * User: xiang
     * Date: 2021/10/23 0:07
     */
    
    @Configuration
    @MapperScan("com.xiang.mapper")
    //添加扫描注解,写入mapper的路径,否则会找不到接口并报错
    public class MybatisPlusConfig {
        //乐观锁插件
        @Bean
        public OptimisticLockerInterceptor OptimisticLockerInterceptor(){
            return new OptimisticLockerInterceptor();
        }
    
        //分页插件
        @Bean
        public PaginationInterceptor paginationInterceptor(){
            return new PaginationInterceptor();
        }
    }
    
    

    测试类

    package com.xiang;
    
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.xiang.mapper.UserMapper;
    import com.xiang.pojo.User;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    
    import java.util.List;
    
    /**
     * Created by IntelliJ IDEA.
     * User: xiang
     * Date: 2021/10/23 1:18
     */
    @SpringBootTest
    public class PageTest {
        @Autowired
        UserMapper userMapper;
        /**
         * MybatisPlus 实现分页
         */
    
        @Test
        void  page(){
            //1.创建Page对象,传入两个参数:当前页和每页显示记录数
            Page<User> userPage = new Page<>(1, 4);
            //2.将分页查询到的所有数据封装到Page对象中
            userMapper.selectPage(userPage,null);
            //3.通过page对象获取分页数据
            System.out.println(userPage.getCurrent());//当前页码
            List<User> list = userPage.getRecords();////每页数据List集合
            for (User user : list) {
                System.out.println(user);
            }
            System.out.println("/*********************/");
            System.out.println(userPage.getSize());//每页显示记录数
            System.out.println(userPage.getTotal());//总记录数
            System.out.println(userPage.getPages());//总页数
            System.out.println(userPage.hasNext());//是否有下一页
            System.out.println(userPage.hasPrevious());//是否有上一页
        }
    }
    
    

    运行结果

    JsqlParserCountOptimize sql=SELECT  id,username,sex,age,birthday,create_time,update_time,version  FROM user
    ==>  Preparing: SELECT COUNT(1) FROM user
    ==> Parameters: 
    <==    Columns: COUNT(1)
    <==        Row: 14
    ==>  Preparing: SELECT id,username,sex,age,birthday,create_time,update_time,version FROM user LIMIT ?
    ==> Parameters: 4(Long)
    <==    Columns: id, username, sex, age, birthday, create_time, update_time, version
    <==        Row: 1, xiang, 男, 18, 2021-10-03, null, null, null
    <==        Row: 559, 小向, 男, 18, 2021-10-04, null, null, null
    <==        Row: 602, admin, 女, 18, 2021-10-20, null, null, null
    <==        Row: 603, testbox, 女, 18, 2021-10-02, null, null, null
    <==      Total: 4
    Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6ae62c7e]
    1
    User(id=1, username=xiang, sex=男, age=18, birthday=Sun Oct 03 00:00:00 CST 2021, createTime=null, updateTime=null, version=0)
    User(id=559, username=小向, sex=男, age=18, birthday=Mon Oct 04 00:00:00 CST 2021, createTime=null, updateTime=null, version=0)
    User(id=602, username=admin, sex=女, age=18, birthday=Wed Oct 20 00:00:00 CST 2021, createTime=null, updateTime=null, version=0)
    User(id=603, username=testbox, sex=女, age=18, birthday=Sat Oct 02 00:00:00 CST 2021, createTime=null, updateTime=null, version=0)
    /*********************/
    4
    14
    4
    true
    false
    
    
  • 相关阅读:
    HDU-4514 湫湫系列故事——设计风景线 手动扩栈
    HDU-4511 小明系列故事——女友的考验 floyd变种-标号递增最短路
    Codeforces Round #199 (Div. 2)
    HDU-4507 吉哥系列故事——恨7不成妻 数位DP
    ZOJ-2342 Roads 二分图最小权值覆盖
    C++题目一道: 重载`->': 您真的懂成员访问运算符的重载吗?
    FCEUX金手指加强版
    原码,反码与补码之间的转换简记
    stm32开发
    Windows中"打开方式..."无法指定程序的解决办法
  • 原文地址:https://www.cnblogs.com/d534/p/15441195.html
Copyright © 2011-2022 走看看