1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

JDBC调用Oracle存储过程返回结果集并获得输出参数的实例是本文我们主要要介绍的内容,接下来我们就开始介绍这一过程,让我们一起来了解一下吧。

packagexx.qq.app; 
importjava.sql.CallableStatement; 
importjava.sql.Connection; 
importjava.sql.ResultSet; 
importorg.springframework.beans.factory.BeanFactory; 
importorg.springframework.context.ApplicationContext; 
importorg.springframework.context.support.ClassPathXmlApplicationContext; 
importcom.mchange.v2.c3p0.ComboPooledDataSource; 
/** 
*@authorJackZhangEmail:fish2-2@163.com 
*@date2011-08-22 
*/ 
publicclassAppTest{ 
publicstaticvoidmain(String[]args)throwsException{ 
ApplicationContextcontext=newClassPathXmlApplicationContext( 
newString[]{"applicationContext.xml"}); 
BeanFactoryfactory=(BeanFactory)context; 
ComboPooledDataSourcedataSource=(ComboPooledDataSource)factory 
.getBean("dataSource"); 
Connectioncon=dataSource.getConnection(); 
CallableStatementst=con.prepareCall("{callpackage_user.PERSON_QUERY(?,?)}"); 
//st.setString(1,""); 
st.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR); 
st.registerOutParameter(2,oracle.jdbc.OracleTypes.INTEGER); 
st.execute(); 
ResultSetrs=null; 
rs=(ResultSet)st.getObject(1); 
while(rs.next()) 
{ 
System.out.println(rs.getObject(1)+""+rs.getObject(2)); 
} 
intcount=st.getInt(2);//获取输出参数 
System.err.println(count); 
if(rs!=null) 
rs.close(); 
if(st!=null) 
st.close(); 
if(con!=null) 
con.close(); 
} 
}
CREATEORREPLACEPACKAGEpackage_userAS 
TYPEMY_RESULTSET_CURSORISREFCURSOR; 
PROCEDUREPERSON_QUERY(RSOUTMY_RESULTSET_CURSOR,COUTINTEGER); 
END; 
createorreplacepackagebodypackage_userAS 
PROCEDUREPERSON_QUERY(RSOUTMY_RESULTSET_CURSOR,COUTINTEGER) 
AS 
BEGIN 
OPENRSFORselect*fromemp; 
updateAsetename='AAA'; 
SELECTCOUNT(*)INTOCfromemp; 
ENDPERSON_QUERY; 
END;

本文来源:1818IP

本文地址:https://www.1818ip.com/post/10675.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。