首页 > 数据库 >mysql中用limit 进行分页有两种方式

mysql中用limit 进行分页有两种方式

时间:2023-06-06 12:03:04浏览次数:78  
标签:pageSize 中用 pagehelper public PageInfo LIMIT mysql limit page

springboot分页插件的使用

  1. SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset  
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

 

Sql代码  

    1. mysql> SELECT * FROM table LIMIT 5,10; // 检索记录行 6-15   
    2.   
    3. //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:    
    4. mysql> SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.   
    5.   
    6. //如果只给定一个参数,它表示返回最大的记录行数目:    
    7. mysql> SELECT * FROM table LIMIT 5; //检索前 5 个记录行

     

     

    limit和offset用法

    mysql里分页一般用limit来实现

    1. select* from article LIMIT 1,3

    2.select * from article LIMIT 3 OFFSET 1

    上面两种写法都表示取2,3,4三条条数据

     

    当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量,例如

    select* from article LIMIT 1,3 就是跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据

    当 limit后面跟一个参数的时候,该参数表示要取的数据的数量

    例如 select* from article LIMIT 3  表示直接取前三条数据,类似sqlserver里的top语法。

    当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 。

    例如select * from article LIMIT 3 OFFSET 1 表示跳过1条数据,从第2条数据开始取,取3条数据,也就是取2,3,4三条数据

     

     

     

    在springboot工程下的pom.xml中添加依赖

    <!--分页 pagehelper -->
      <dependency>
           <groupId>com.github.pagehelper</groupId>
           <artifactId>pagehelper-spring-boot-starter</artifactId>
           <version>1.2.5</version>
       </dependency>
    <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.1</version>
    </dependency>

    在工程的配置Application文件中添加如下代码

    #pagehelper分页插件配置
    pagehelper.helperDialect=mysql
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql

    对service层的更改

    @Service
    public class UserService2 {
        @Autowired
        private UserDao userDao;
        public PageInfo<User> queryAll(Integer page, Integer pageSize ){
            PageHelper.startPage(page,pageSize);//分页起始码以及每页页数
            List<User> users=userDao.selectAll();
            PageInfo pageInfo=new PageInfo(users);
            return pageInfo;
        }

    对controller层的更改

    @Controller
    public class UserController2 {
        @Autowired
        private UserService2 userService2;
    
        @RequestMapping("queryAll")
        @ResponseBody
        public List<User> query(@RequestParam(value="page",defaultValue="1")Integer page, @RequestParam(value="pageSize",defaultValue="2")Integer pageSize){
            PageInfo<User> pageInfo=userService2.queryAll(page,pageSize);
            return pageInfo.getList();
        }
    }




    在springboot工程下的pom.xml中添加依赖

    <!--分页 pagehelper -->
      <dependency>
           <groupId>com.github.pagehelper</groupId>
           <artifactId>pagehelper-spring-boot-starter</artifactId>
           <version>1.2.5</version>
       </dependency>
    <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>2.1.1</version>
    </dependency>

    在工程的配置Application文件中添加如下代码

    #pagehelper分页插件配置
    pagehelper.helperDialect=mysql
    pagehelper.reasonable=true
    pagehelper.supportMethodsArguments=true
    pagehelper.params=count=countSql

    对service层的更改

    @Service
    public class UserService2 {
        @Autowired
        private UserDao userDao;
        public PageInfo<User> queryAll(Integer page, Integer pageSize ){
            PageHelper.startPage(page,pageSize);//分页起始码以及每页页数
            List<User> users=userDao.selectAll();
            PageInfo pageInfo=new PageInfo(users);
            return pageInfo;
        }

    对controller层的更改

    @Controller
    public class UserController2 {
        @Autowired
        private UserService2 userService2;
    
        @RequestMapping("queryAll")
        @ResponseBody
        public List<User> query(@RequestParam(value="page",defaultValue="1")Integer page, @RequestParam(value="pageSize",defaultValue="2")Integer pageSize){
            PageInfo<User> pageInfo=userService2.queryAll(page,pageSize);
            return pageInfo.getList();
        }
    }

    标签:pageSize,中用,pagehelper,public,PageInfo,LIMIT,mysql,limit,page
    From: https://blog.51cto.com/u_4018548/6423653

    相关文章

    • The Epsilon-Delta Definition of a Limit
      bycourtesyoftheauthor:APEXCalculusI/II/IIIUniversityofNorthDakotaAdaptedfromAPEXCalculusbyGregoryHartman,Ph.D.,DepartmentofAppliedMathematics,VirginiaMilitaryInstitute1.2 Epsilon-DeltaDefinitionofaLimitThissectionintrodu......
    • 浅谈mysql索引类型(normal、unique、full textl) 的区别和使用场景
      mysql索引类型mysql索引类型normal,unique,fulltext的区别是什么?normal:表示普通索引unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为uniquefulltextl:表示全文搜索的索引。FULLTEXT用于搜索很长一篇文章的时候,效果最好。用在......
    • mysql 存储过程
      存储过程是一组特定的语句合计,为实现某种特定的功能。编译后存贮在字典中。因为的多条语句集合后执行,为了避免与sql语句的结束符;冲突而逐条执行,创建之前要申明存储过程需要使用的分隔符。 delimter$$#定义分隔符为$$…………$$#执行delimiter;#执行后结束符修改为;i......
    • MySQL用户与权限管理
      一:用户管理1:登录MySQL服务器我们在安装完MySQL以后,就会通过root用户进行登录;那么root该怎么登录呢?所以我们启动MySQL服务后,可以通过mysql命令来登录MySQL服务器基本语法:mysql<-uusername><-p>[password][-hhostname|hostIP][-Pport][databaseName][-e"SQL语句"......
    • yum安装MySQL
      ###########################################   一、安装yum源下载地址:https://dev.mysql.com/downloads/repo/yum/rpm-ivh  mysql80-community-release-el7-7.noarch.rpm  二、安装mysql-serveryum-yinstallmysql-server 三、修改用户root@'localhost'......
    • Mysql中如何去除重复数据,只保留一条。
      1、如果没有主键,则新增自增主键:--改变表结构,增加名为id的列ALTERTABLEempaddidintfirst;--将id字段设置为主键自增;ALTERtableempMODIFYidintPRIMARYkeyauto_increment;2、根据name分组取最小idSELECTt.idFROM (SELECTMIN(id)ASidFROMem......
    • MySQL如何查询B+树高以及树能存放多少数据
      来源:  https://blog.csdn.net/Hmj050117/article/details/121349435 ......
    • mysql 局域网连接
      下面分别简述操作:配置虚拟机网络默认方式是NAT,但为了让宿主机之外的其它计算机也能访问虚拟机,NAT方式配置起来有些复杂,这里推荐用桥接模式,关于VM的几种网络方式的区别,可以参考这篇文章配置好之后确认下虚拟机是否能上网,网段是否和宿主机相同。ubuntu查看ip信息命令:ifconfig#若提......
    • mysql版本:'for the right syntax to use near 'identified by 'password' with grant
      查询mysql具体版本SELECT@@VERSION问题分析:mysql版本8.0.13,在给新用户授权时,发生了变化:1064-YouhaveanerrorinyourSQLsyntax;checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear'identifiedby'password'withgrant......
    • Mysql第一篇之基础
      1.数据库相关概念何为数据库:存储和管理数据的仓库,数据是有组织的进行存储。数据库英文名是DataBase,简称DB。数据库就是将数据存储在硬盘上,可以达到持久化存储的效果。那又是如何解决上述问题的?使用数据库管理系统。何为数据库管理系统:管理数据库的大型软件英文:Data......