<转>Java 执行存储过程--返回多个结果集

在JAVA中执行存储过程用



CallableStatement callsm= con.prepareCall(strsql);



callsm.execute();



在执行存储过程后,要得到结果集callsm.getResultSet



如果有多个结果集呢?


package com.yangtianb.dao;



import java.sql.CallableStatement;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;



import com.yangtianb.connctionMannege.ConnectionManager;



public class ProcDao {

public void proctest(){

Connection con = ConnectionManager.getConnection();





CallableStatement callsm=null;

try {

String strsql = "{call PROC_DARWEXPERT(?,?,?)}";//sql语句

callsm = con.prepareCall(strsql);

//参数设置

callsm.setString(1, "res");

callsm.setString(2, "me");

callsm.setString(3, "111");

//执行

callsm.execute();

//获取结果集

ResultSet rs = callsm.getResultSet();

while(rs.next()){

System.out.println(rs.getString(1)+"a");

}

//判断是否有下一个游标

if(callsm.getMoreResults()){//这个判断会自动指向下一个游标

ResultSet rs1 = callsm.getResultSet();//得到第二个结果集

while(rs1.next()){//处理第二个结果集

System.out.println(rs1.getShort(1));

}

try{//关闭rs1

if(rs1 != null){

rs1.close();

}

if(rs!=null){

rs.close();

}

}catch(SQLException e){

e.printStackTrace();

}

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{



try {

callsm.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

ConnectionManager.closeConnection(con);

}

}

}


【转载地址】http://hi.baidu.com/jingminglang/item/2460e471d198c348ef1e5391
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值