Welcome 微信登录

首页 / 数据库 / MySQL / MySQL存储过程分页兼返回总页数

因为MySQL目前不支持动态参数分页所以存储过程中要么传sql语句过去要么自己写个字符串连接方法下为第二种方法 把每个需要分割的地方单写一行,清除
  1. BEGIN  
  1. SELECT CEIL(COUNT(*)/pageNum) INTO pageCount FROM mytestdb.mttest WHERE tt_id = arg_mt_id;  
  1. SET @sqlStr = CONCAT("SELECT `mt_id`,`tt_id`,`tt_name` FROM `mytestdb`.`mttest` WHERE `tt_id` = ");  
  1. SET @sqlStr = CONCAT(@sqlStr,arg_mt_id);  
  1. SET @sqlStr = CONCAT(@sqlStr," LIMIT ");SET @sqlStr = CONCAT(@sqlStr,((pageNum-1)*pageSize));  
  1. SET @sqlStr = CONCAT(@sqlStr,",");  
  1. SET @sqlStr = CONCAT(@sqlStr,pageSize);  
  1. SET @sqlStr = CONCAT(@sqlStr,";");  
  1. PREPARE s1 FROM @sqlStr;  
  1. EXECUTE s1;  
  1. DEALLOCATE PREPARE s1;  
  1. END  
或者写成一行,效率高但是更容易写错
  1. BEGIN  
  1. SELECT CEIL(COUNT(*)/pageNum) INTO pageCount FROM mytestdb.mttest WHERE tt_id = arg_mt_id;  
  1. SET @sqlStr = CONCAT("SELECT `mt_id`,`tt_id`,`tt_name` FROM `mytestdb`.`mttest` WHERE `tt_id` = ",arg_mt_id," LIMIT "
  1. ((pageNum-1)*pageSize),",",pageSize";");  
  1. PREPARE s1 FROM @sqlStr;EXECUTE s1;DEALLOCATE PREPARE s1;END  
java端
  1. try {Connection conn = db.openDB(getServletContext());String sql = "{call `myPagingTest`(?,?,?,?)}";CallableStatement cs = conn.prepareCall(sql);cs.setInt(11);cs.setInt(21);cs.setInt(35);cs.registerOutParameter(4, Types.INTEGER);rs = cs.executeQuery();System.out.println(cs.getInt(4));while(rs.next()){out.println(rs.getInt(1));              out.println(rs.getInt(2));              out.println(rs.getString(3) + "<br>");    }} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{          try {if(rs != null){rs.close();}if(db!=null){db.close();}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}      }  
MySQL存储过程中使用游标和临时表MySQL存储过程里字符串拼接返回参数的方法相关资讯      MySQL教程 
  • 30分钟带你快速入门MySQL教程  (02月03日)
  • MySQL教程:关于I/O内存方面的一些  (01月24日)
  • CentOS上开启MySQL远程访问权限  (01/29/2013 10:58:40)
  • MySQL教程:关于checkpoint机制  (01月24日)
  • MySQL::Sandbox  (04/14/2013 08:03:38)
  • 生产环境MySQL 5.5.x单机多实例配  (11/02/2012 21:02:36)
本文评论 查看全部评论 (0)
表情: 姓名: 字数