`
xiangsheng
  • 浏览: 101079 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

JDBC调用MYSQL分页存储过程(1)

阅读更多
MYSQL分页存储过程代码:
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);  -- 计算总页数
  SET @pagesCnt = ceil(@rowsCnt / 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 ;
2
0
分享到:
评论

相关推荐

    基于某某平台的数据源迁移oracle -mysql

    基于某某系统平台的数据源迁移 1 一、背景 4 二、环境准备 4 1、软件 4 2、jar包 4 ...七、某某系统中调用 mysql存储过程 11 1、调用存储过程配置 11 2、存储过程中遇到的问题 13 八、后续迁移方案 17

    MySQL真分页(jsp版)

    也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...

    JSP版MySQL真分页

    也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...

    纯JSP-JDBC开发Web程序

    1.架构技术简单,只包含JSP和JDBC+MySQL,不需要学习即可快速开发Web应用,稍加改造也可以用于其他数据库应用程序; 2.用特殊的回调机制进行JDBC封装,以致不用每次的JDBC访问都要进行数据库连接和关闭,支持...

    JSP MySQL真分页.rar

    也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...

    MySQL真分页(JSP修正版)

    也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...

    JDBC 3.0数据库开发与设计

    4.2 调用存储过程对象 4.2.1 CallableStatement对象的创建 4.2.2 IN、OUT及INOUT参数的使用 4.2.3 执行CallableStatement Object对象 4.2.4 CallableStatement对象使用实例 4.2.5 SQL Server存储过程编程经验...

    二十一道面试程序.txt

    1. 写出JDBC的连接(oracle,sql2000,mysql)。 2. 用java语言写出堆栈的代码 3. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少 4. 用java代码对XML进行解释。 5. 用java语言实现文件上传操作,并...

    JSP 程序设计从入门到精通 PDF 教程

     7.3 Jsp连接mysql调用数据源方法 175  7.3.1对mysql数据库最基本的DB操作 175  7.3.2 调用对DB操作的方法 182  7.4 Jsp数据分页显示 184  7.5 jsp编写的留言本 188  7.5.1在mysql中建表 188  7.5.2...

    《MyEclipse 6 Java 开发中文教程》前10章

    6.6.2监控服务器启动过程 103 6.6.3停止服务器 103 6.6.4调试发布的企业应用 104 6.7小结 104 6.8 参考资料 104 第七章 开发Hibernate应用 105 7.1介绍 105 7.2 Hibernate 一览 105 7.2.1简介 105 7.2.2 Hibernate...

    Java面试宝典2020修订版V1.0.1.doc

    19、用JDBC如何调用存储过程 69 20、JDBC中的PreparedStatement相比Statement的好处 71 21、写一个用jdbc连接实例。 71 22、ArrayList和Vector的区别? 73 23、List、Set和Map的区别? 74 24、Collection 和 ...

    (JAVA)BBS论坛设计 内涵代码

    private String url= "jdbc:mysql://localhost:3306/bbs"; //连接字符串 private Connection conn=null; //数据库连接对象 public Statement sm=null; //数据库语句对象 public void ConnectDB(){ try { Class....

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题31.jdbc调用存储过程 Java面试题32.简单说一下你对jdbc的理解 Java面试题33.写一个jdbc的访问oracle的列子 Java面试题34.jdbc中preparedStatement比Statement的好处 Java面试题35.数据库连接池的作用 Java...

    黑马程序员安卓Android52期培训课

    2015/1/3 星期六 jdbc分页/监听器 2015/1/4 星期日 2015/1/5 星期一 2015/1/6 星期二 javaWeb之过滤器 2015/1/7 星期三 javaWeb之文件上传和下载 2015/1/8 星期四 2015/1/9 星期五 框架学习之java基础加强 2015/...

    最新Java面试题视频网盘,Java面试题84集、java面试专属及面试必问课程

    │ Java面试题31.jdbc调用存储过程.mp4 │ Java面试题32.简单说一下你对jdbc的理解.mp4 │ Java面试题33.写一个jdbc的访问oracle的列子.mp4 │ Java面试题34.jdbc中preparedStatement比Statement的好处.mp4 │ Java...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例157 动态调用类中的方法 204 实例158 动态实例化类 205 实例159 创建长度可变的数组 206 实例160 利用反射重写toString()方法 208 实例161 反射与动态代理 209 7.3 常见的未检查型异常 210 实例162 算数异常 210...

Global site tag (gtag.js) - Google Analytics