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 ;
分享到:
相关推荐
基于某某系统平台的数据源迁移 1 一、背景 4 二、环境准备 4 1、软件 4 2、jar包 4 ...七、某某系统中调用 mysql存储过程 11 1、调用存储过程配置 11 2、存储过程中遇到的问题 13 八、后续迁移方案 17
也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...
也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...
1.架构技术简单,只包含JSP和JDBC+MySQL,不需要学习即可快速开发Web应用,稍加改造也可以用于其他数据库应用程序; 2.用特殊的回调机制进行JDBC封装,以致不用每次的JDBC访问都要进行数据库连接和关闭,支持...
也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...
也可以把DBlink()中的conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/jiuzhou","root","123456");用的连接参数写在xml中生成一个JAR包,这样才更有扩展性,你说呢~~。希望高手能继续改良,让这段...
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存储过程编程经验...
1. 写出JDBC的连接(oracle,sql2000,mysql)。 2. 用java语言写出堆栈的代码 3. 设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少 4. 用java代码对XML进行解释。 5. 用java语言实现文件上传操作,并...
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...
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...
19、用JDBC如何调用存储过程 69 20、JDBC中的PreparedStatement相比Statement的好处 71 21、写一个用jdbc连接实例。 71 22、ArrayList和Vector的区别? 73 23、List、Set和Map的区别? 74 24、Collection 和 ...
private String url= "jdbc:mysql://localhost:3306/bbs"; //连接字符串 private Connection conn=null; //数据库连接对象 public Statement sm=null; //数据库语句对象 public void ConnectDB(){ try { Class....
Java面试题31.jdbc调用存储过程 Java面试题32.简单说一下你对jdbc的理解 Java面试题33.写一个jdbc的访问oracle的列子 Java面试题34.jdbc中preparedStatement比Statement的好处 Java面试题35.数据库连接池的作用 Java...
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面试题31.jdbc调用存储过程.mp4 │ Java面试题32.简单说一下你对jdbc的理解.mp4 │ Java面试题33.写一个jdbc的访问oracle的列子.mp4 │ Java面试题34.jdbc中preparedStatement比Statement的好处.mp4 │ Java...
实例157 动态调用类中的方法 204 实例158 动态实例化类 205 实例159 创建长度可变的数组 206 实例160 利用反射重写toString()方法 208 实例161 反射与动态代理 209 7.3 常见的未检查型异常 210 实例162 算数异常 210...