Java 执行存储过程--返回多个结果集
2011-02-14 10:20
369 查看
在JAVA中执行存储过程用
CallableStatement callsm= con.prepareCall(strsql);
callsm.execute();
在执行存储过程后,要得到结果集callsm.getResultSet
如果有多个结果集呢?
view plaincopy to clipboardprint?
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);
}
}
}
CallableStatement callsm= con.prepareCall(strsql);
callsm.execute();
在执行存储过程后,要得到结果集callsm.getResultSet
如果有多个结果集呢?
view plaincopy to clipboardprint?
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);
}
}
}
相关文章推荐
- Java 执行存储过程--返回多个结果集
- Java 调用 Oracle 存储过程返回结果集
- 在存储过程中执行别的存储过程并获取其返回的结果集
- java调用存储过程时,返回结果不是ResultSet的时候的处理
- SQL SERVER存储过程执行返回Return Value=0,未输出预期结果
- select * from (存储过程执行并返回的结果表)
- mysql简单存储过程创建并返回执行结果
- 在存储过程中执行别的存储过程并返回其结果集
- JAVA调用ORACLE带数组输入参数和返回游标结果集的存储过程
- Oracle存储过程中执行查询返回的结果集,并使用java代码调用【转】
- java调用存储过程,返回结果集
- java调用存储过程 返回结果集
- JAVA调用ORACLE的存储过程、函数的返回结果集
- oracle 存储过程执行可输入sql语句并返回结果集
- JAVA 并发编程-返回执行结果(Callable和Future)(九)
- java连接oracle执行存储过程小程序
- java并发带返回结果的批量任务执行
- 怎样让Oracle的存储过程返回结果集
- 当java调用oracle的存储过程时,存储过程的返回值类型不能为boolean
- Sybase调用存储过程并返回结果