您当前的位置: 首页 > 数据库教程 > MySQL教程 > mysql存储过程实例

mysql存储过程实例

作者:不详 来源:网络 发布时间: 2014-07-17 11:45 点击:
由于mysql自定义函数中不能输出两或多个结果,所以需要用到mysql的存储过程。 下面是一个例子。 sql语句: DROP PROCEDURE IF EXISTS `testguocheng`; CREATE PROCEDURE `testguocheng`(IN `sql1` varchar(100),IN `sql2` varchar(100)) BEGIN SET @SQLStr1=CONCAT(sql

mysql存储过程实例

  由于mysql自定义函数中不能输出两或多个结果,所以需要用到mysql的存储过程。

  下面是一个例子。

  sql语句:

  DROP PROCEDURE IF EXISTS `testguocheng`;

  CREATE PROCEDURE `testguocheng`(IN `sql1` varchar(100),IN `sql2` varchar(100))

  BEGIN

  SET @SQLStr1=CONCAT(sql1 );

  PREPARE stmt1 from @SQLStr1 ;

  EXECUTE stmt1;

  SET @SQLStr2=CONCAT(sql2);

  PREPARE stmt2 from @SQLStr2 ;

  EXECUTE stmt2;

  END;

  解释一下这个存储过程,输入的是两个sql语句,得到的结果是两个结果集。

  下面是调用的java语句。

  public static void getData() {

  Connection conn = JdbcUtils.getConnection();

  CallableStatement stmt = null;

  ResultSet rs=null;

  try{

  stmt = conn.prepareCall("{call testguocheng('select * from tsys_user;','select count(*) from tsys_user;')}");

  boolean flag=stmt.execute();

  int i=0;

  while(flag){

  System.out.println("第几个结果集"+(++i));

  rs = stmt.getResultSet();

  if(i==1){

  while(rs.next()){

  System.out.println("uid:" +rs.getString("uid")+",uname:"+rs.getString("uname"));

  }

  }else{

  while(rs.next()){

  System.out.println("总数:" +rs.getString(1));

  }

  }

  flag=stmt.getMoreResults();

  }

  }catch(Exception e){

  System.out.println(e.toString());

  }finally{

  try {

  stmt.close();

  conn.close();

  }catch (Exception ex) {

  System.out.println(ex.getMessage());

  }

  }

  }
分享到:
本文"mysql存储过程实例"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4