zoukankan      html  css  js  c++  java
  • springboot中使用mybatis的分页插件pageHelper

    首先在pom.xml中配置

    <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.16</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
    <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.12</version>
    </dependency>

    然后就是写代码了,最重要的两个类是:

    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import com.alibaba.fastjson.JSON;
    import com.github.pagehelper.PageHelper;
    import com.github.pagehelper.PageInfo;
    import com.yuanqiao.dao.UserDao;
    import com.yuanqiao.entity.User;
    import com.yuanqiao.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class UserServiceImpl implements UserService {
    
        @Autowired
        private UserDao userDao;
    
        @Override
        public PageInfo<User> getAllUsers(int pageNum,int pageSize) {
            PageHelper.startPage(pageNum,pageSize);
            List<User> allUsers = userDao.getAllUsers();
            PageInfo<User> pageInfo=new PageInfo<>(allUsers);
            return pageInfo;
        }
    
    
        @Override
        public User getUserById(Integer id) {
            User user = userDao.getUserById(id);
            System.out.println("------------------这里打印了吗?------------------------------");
            System.out.println(JSON.toJSONString(user));
            return user;
        }
    
    
    }

    执行测试类

    package com.yuanqiao.service;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class UserServiceTest {
    
        @Autowired
        private UserService userService;
    
        @Test
        public void getAllUsers(){
            userService.getAllUsers(1,2);
        }
        @Test
        public void getAllUsers002(){
            userService.getAllUsers(2,3);
        }
    }

    数据库数据如下;

    测试sql日志结果如下:

    2019-08-03 00:21:00.053  INFO 24268 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
    JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@6d963d70] will not be managed by Spring
    ==>  Preparing: SELECT count(0) FROM user 
    ==> Parameters: 
    <==    Columns: count(0)
    <==        Row: 14
    <==      Total: 1
    ==>  Preparing: select * from user LIMIT ?, ? 
    ==> Parameters: 3(Integer), 3(Integer)
    <==    Columns: id, name, sex, age
    <==        Row: 4, zhangsan, female, 33
    <==        Row: 5, zhangsan, male, 18
    <==        Row: 6, zhangsan, male, 19
    <==      Total: 3

    可以看到pageHelper实质是帮我们重新封装了sql的,并没有全表扫描出来再物理组装,所以是很高级的一个工具了。

  • 相关阅读:
    Android 五大布局
    jdk6的安装以及环境变量的设置
    PLSQL Developer图形化窗口创建数据库全过程
    未能加载文件或程序集“Oracle.DataAccess, " 64位OS运行32位程序的问题
    Android SDK 无法连接到GOOGLE 下载安装包
    Android开发之旅:环境搭建
    Android开发把项目打包成apk
    在 VMware Workstation 虚拟机中创建共享文件夹的步骤〔图解〕
    谈谈对于企业级系统架构的理解
    C#图片处理之: 获取数码相片的EXIF信息
  • 原文地址:https://www.cnblogs.com/mkl34367803/p/11291847.html
Copyright © 2011-2022 走看看