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的,并没有全表扫描出来再物理组装,所以是很高级的一个工具了。

  • 相关阅读:
    MySQL数据库安装和基本使用
    Android studio JNI技术实现与本地C++链接
    笔记 java中i++ 和 ++i的区别
    LaTeX中添加usepackage{subfigure}一直报错的解决办法,亲测
    Android Studio 出现“Cannot resolve symbol” 解决办法
    记录一个sql
    linux 文件内容查找、去重、统计
    MVC框架的模板缓存
    Linux 命令学习
    笔记 :PHP中的数据结构库SPL
  • 原文地址:https://www.cnblogs.com/mkl34367803/p/11291847.html
Copyright © 2011-2022 走看看