DROP PROCEDURE IF EXISTS `pro_pager`;

CREATE DEFINER = `root`@`%` PROCEDURE `pro_pager`(

in p_pageNo int, /*当前页*/

in p_perPageCnt int, /*每页记录数*/

in p_sql VARCHAR(2000), /*查询sql语句*/

out v_totalRowsCnt int, /*记录总条数*/

out v_totalPageCnt int) /*记录总页数*/

BEGIN

/*当传入查询页数为null或者<1时,赋p_pageNo=1 */

IF p_pageNo IS NULL OR p_pageNo < 1 THEN

SET p_pageNo = 1;

END IF;

SET @rowsCnt = 0;

SET @pagesCnt = 0;

SET @sqlCnt = CONCAT('select count(1) into @rowsCnt from (',p_sql,') as t'); -- 统计总记录数sql

/*统计总记录数-预处理*/

PREPARE s_cnt from @sqlCnt;

EXECUTE s_cnt;

DEALLOCATE PREPARE s_cnt;

SET v_totalRowsCnt = @rowsCnt;

SET @pagesCnt = floor((@rowsCnt + p_perPageCnt - 1) / p_perPageCnt); -- 计算总页数

/*当传入查询页数>总页数时,赋p_pageNo=总页数 */

IF p_pageNo > @pagesCnt THEN

SET p_pageNo = @pagesCnt;

END IF;

SET v_totalPageCnt = @pagesCnt;

SET @limitStart = (p_pageNo - 1) * p_perPageCnt; -- 查询记录起始行

SET @limitEnd = p_perPageCnt; -- 查询记录结束行

SET @sqlQry = CONCAT(p_sql, ' limit ', @limitStart, ',', @limitEnd); -- 查询记录集sql

/*查询记录集-预处理*/

PREPARE record from @sqlQry;

EXECUTE record;

DEALLOCATE PREPARE record;

END ;

分享到:

2010-08-18 17:45

浏览 1043

分类:数据库

评论

mysql 分页 jdbc_JDBC调用MySQL分页存储过程实现(一)相关推荐

  1. pb 调用mysql过程_pb调用mysql函数或存储过程异常

    pb调用mysql函数或存储过程异常.尤其是mysql函数带传入传出参数时,pb调用时候无法正常执行,提示SQLSTATE=37000错误. 在pb程序中正常更新mysql表中字段或读取mysql表中 ...

  2. mysql 视图 mybatis_Mybatis调用视图和存储过程的方法

    现在的项目是以Mybatis作为O/R映射框架,确实好用,也非常方便项目的开发.MyBatis支持普通sql的查询.视图的查询.存储过程调用,是一种非常优秀的持久层框架.它可利用简单的XML或注解用语 ...

  3. ajax连mysql数据库_AJAX调用mysql数据库简单例子

    地址: 用户: 密码: function a(){ var cont=$("input").serialize(); $.ajax({ url:"7.php", ...

  4. mysql hicharts_PHP怎么调用Mysql的数据给Highcharts

    本帖最后由 tiiia 于 2016-4-11 11:23 编辑 小白一只,对照着网上的例子写了一下,但是显示不出来,调用test数据表里的time作横坐标,sendcode作纵坐标数据,求大神帮忙看 ...

  5. php分页技术的作用,分页原理技术细节剖析(php+mysql)实例

    提到分页,大家都不陌生,在我们日常浏览网页时常遇到,尤其新闻文章列表等都有分页,如下图所示: 分页实例 下面,通过一个实例为大家剖析一下分页原理上技术细节. 一.功能开发思路 在分页功能的实现前,先做 ...

  6. jq取第一个子元素为select_Java修行第036天---MySQL中的子查询,分页语句,三大范式...

    学习目标: 1.掌握子查询 2.了解正则表达式 3.理解索引的作用和创建索引 4.了解用户管理 5.掌握分页语句 6.了解执行计划和数据库引擎 7.理解数据库设计的三大范式 综合程序图: 1 子查询知 ...

  7. 用ajax+js+dom+php+mysql,方百度goole的分页~~~~~~~~哦!

    思路: 分页的实现逻辑 1.在mysql中如何查询区间数据   limit 起始行,要查询的行数 2.什么是分页   当我们的数据量比较大时候,一页显示不了就分页显示,可以增加用户的体验 3.实现分页 ...

  8. hql调用mysql存储过程_hibernate调用mysql存储过程

    在mysql中创建两个存储过程,如下: 1.根据id查找某条数据: 1 CREATE PROCEDURE `findEmpById`(IN id INTEGER(11))2 begin3      s ...

  9. MySQL 学习笔记(6)— 存储过程创建、调用、删除以及带参数的存储过程

    1. 存储过程总结 存储过程是一种存储在数据库中的程序.它可以包含多个 SQL 语句,并提供许多过程语言的功能,例如变量定义.条件控制语句.循环语句.游标以及异常处理等. 1.1 存储过程优点 实现代 ...

最新文章

  1. linux不能挂载手机,这个无法挂载的信息是怎么回事?
  2. 使用ganymed-ssh2-build通过ssh获得远程服务器参数
  3. OpenCV meanshift目标追踪
  4. docker数据卷volume详解
  5. SAP ABAP ADBC和Java JDBC的使用比较
  6. Struts2项目中的JSP如何访问Session对象
  7. C++ qsort() 函数调用时实参与形参不兼容的问题解决
  8. java 判断请求为 ajax请求_Java后台判断ajax请求及处理过程详解
  9. led数字字体_技术丨体育场馆LED显示屏设计与安装要求
  10. OpenCV图像处理基础操作(3)
  11. 如何防范短信接口被恶意攻击
  12. lamp兄弟连java_LAMP兄弟连李明老师讲Linux视频教程下载
  13. ps用计算机,教你用photoshop绘制计算器
  14. 单片机课设中期报告_毕业论文--中期检查情况报告(40页)详解.doc
  15. hdoj2154跳舞毯
  16. 遥感影像数据产品级别
  17. JAVA表达爱意_520表白日;程序员不会说爱?来一种属于程序员的满满爱意
  18. 2058:简单计算器
  19. iphone手机音频AAC视频H264推流(一) iphone手机推流最佳方案
  20. 服务器虚拟环境使用指南

热门文章

  1. 防水耐脏,超大容量双肩包,限时拼团仅需49元
  2. 揭开容器的神秘面纱:帮助初学者深入了解容器技术
  3. lamp mysql位置_linux查看 LAMP环境安装路径
  4. 计算机毕设最快多长时间,大学几年快结束了,计算机毕设到底该怎么做?
  5. apache 统计404日志_Apache监控与调优(四)Apachetop监控
  6. quercus mysql_让PHP运行在Glassfish中:quercus配置
  7. Centos7 解决Docker拉取镜像慢的问题
  8. Linux Shell脚本专栏_批量检测网站是否异常脚本_08
  9. Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件
  10. idea maven插件tomcat内存溢出