在WEB项目中我们经常会使用到分页,分页有很多中,一种是放在内存中,由java代码控制分页;另一种是直接用sql进行数据库分页;

放在内存中进行分页这肯定是不太现实的,如果数据量过大,会导致内存爆掉。所以我们还是选择利用数据库查询分页。

现在java常用的ORM映射框架就那么几个,hibernate,ibatis(改成mybatis了)等。。

hibernate可以调用Session的setFirstResult(int ...)、setMaxResult(int ...)或用hibernateTemplate等完成分页。当然你要写sql也可以。

ibatis我不是很了解,但是我知道他和hibernate的一点差别,那就是需要自己优化sql。。

----------------------------------------------------------------------------------------------------------以上废话

这里我们看看mysql用limit是如何分页的:

首先来看我表结构:

再看我的查询语句:

1 SELECT * from d_user LIMIT 1,2

接着看查询结果:

看到上面的结果你可能会很疑惑,为什么是从id=2开始,我之前也很疑惑,我明明是让他从第一行开始。经过查阅资料,发现limit默认的初始行是从0行开始。

也就是说如果我们要获取到id=1的那一行那我们的sql语句就应该这样写:

SELECT * from d_user LIMIT 0,2

结果:

看到这里相信我们已经明白了。使用limit关键字时有两个参数,如:limit arg1,arg2;

其中:arg1表示从哪一行开始,初始行为0;

arg2表示显示多少行,如:limit 0,2;limit 1,2;这两种方式都是显示两条数据,只不过一条是从第0行开始,一条是从第1条开始。

----------------------------------------------------------------------------------------------------------------------------------------------------------

补充:当arg1=0时,可以不用写arg1,直接写:limit arg2就可以了。

注意:arg2貌似不能为负数,使用navicat for mysql执行时会报错:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2.-1' at line 1

mysql中limit关键字_【JAVA】关于mysql的limit关键字使用。相关推荐

  1. 如何在mysql中创建过程_如何在MySQL 中创建存储过程?

    问题阐述 自MySQL 5.0 开始,MySQL 就支持存储过程.存储过程是一些被用户定义的SQL 语句集合.一个存储程序是可以被存储在服务器中的一套SQL 语句.存储过程可以被程序.触发器或另一个存 ...

  2. 如何在mysql中添加用户_如何给mysql数据库添加一个用户

    首先以root身份登录到MySQL服务器中. $ mysql -u root -p 当验证提示出现的时候,输入MySQL的root帐号的密码. 创建一个MySQL用户 使用如下命令创建一个用户名和密码 ...

  3. mysql中对比月_详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2 ...

  4. delimiter在mysql中的作用_细细研究MySql中delimiter起到的作用_MySQL

    MySql中delimiter究竟可以起到些什么作用呢?可能不少人都有这样的疑惑,下文就为您介绍MySql中delimiter的作用,供您参考. MYSQL导出一个SQL后: DELIMITER $$ ...

  5. 如何合并mysql中的行_如何在MySQL中合并行?

    要合并MySQL中的行,请使用GROUP_CONCAT(). 让我们首先创建一个表-mysql> create table DemoTable734 ( Id int, Name varchar ...

  6. 查询mysql中user表_怎么查询mysql user表?

    在mysql中,可以使用"SELECT * FROM mysql.user;"语句来查询user表,且必须拥有对user表的查询权限才可执行该语句.新创建的用户只有登录MySQL服 ...

  7. 如何在mysql中创建连接_如何在MySQL中创建新用户并开启远程连接访问?

    如何在MySQL中创建新用户并开启远程连接访问? 发布时间:2020-05-21 14:55:19 来源:亿速云 阅读:176 作者:鸽子 下面由mysql教程给大家介绍MySQL创建新用户并开启远程 ...

  8. java with关键字_[Java教程]javascript 里面 with 关键字

    [Java教程]javascript 里面 with 关键字 0 2016-02-18 11:00:02 1.with的基本概念 with语句的作用是将代码的作用域设置到一个特定的作用域中,目的是为了 ...

  9. mysql中查找出生日期_如何在MySQL中根据出生日期记录显示日期名称?

    使用DAYNAME()显示具有出生日期的记录中的日期名称. 让我们首先创建一个表-mysql> create table DemoTable795 ( DateOfBirth date ); 使 ...

  10. mysql中on用法_详解mysql中的Using与On的用法

    多用才可以体会各个关键字的用法啊... 在用Join进行多表联合查询时,我们通常使用On来建立两个表的关系.其实还有一个更方便的关键字,那就是Using.那么这两个关键字在使用上有啥区别呢?往下看. ...

最新文章

  1. 自动化系列-pyppeteer键盘输入点击
  2. Technical User Stories – What, When, and How?
  3. 韩文博 php,No releases available for package pear.php.net/HTTP_Upload
  4. you have mixed tabs and spaces fix this
  5. Python 的协程库 greenlet 和 gevent
  6. 前端规范——前后端接口规范
  7. Django出现Error: 111 connect to 192.168.158.141:22122. Connection refused
  8. seo从入门到精通_SEO入门书籍推荐:从入门到精通,新人必看的3本书
  9. Ajax 入门Demo
  10. 杜绝焦虑,如何提高执行力改变生活?
  11. 伤害世界服务器连接失败_伤害世界服务器怎么架设_伤害世界服务器架设图文教程_玩游戏网...
  12. 不会吧,难道真的有程序员不知道怎么接单赚钱吗?
  13. 实验4 用JavaBean实现简单计算器
  14. AI巨头们建造的“新世界”,进展如何?
  15. Ubuntu16.04设置并查看DNS
  16. java快速排序的时间复杂度_程序猿必备排序算法及其时间复杂度分析
  17. 将 vim 外的内容复制并粘贴到 Vim 里使用,如从windows系统复制内容到vim中使用
  18. 微信趣味测评小程序独立版源码
  19. matlab高斯消去法程序代码,如何在MATLAB用高斯消去法求解线性方程组程序
  20. 武林秘籍之C语言大法.第二式 语句 带你走向武林之巅

热门文章

  1. 高能解析得时候忽略某个字段_我们什么时候应该忽略批评?
  2. xgboost子树可视化
  3. IDEA的Struts2项目报错java.lang.ClassNotFoundException
  4. 将Excel中的数据导入到MySql数据库中
  5. Linux——vi编辑器
  6. Django处理MySQL事物的用法
  7. Ubuntu软件安装
  8. Global.asax.cs中的方法(包括自定义方法)的含义
  9. python变量名区分大小写_python变量名要不要区分大小写
  10. 32k通过地址跳转到函数_【HYPERLINK】函数技巧,你一定要知道的!!!