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:[email protected] *@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;

以上就是JDBC调用Oracle存储过程返回结果集并获得输出参数的全部过程,本文就介绍到这里了,希望本次的介绍能够对您有所收获!

【编辑推荐】

    Oracle数据库诊断工具RDA的安装与使用详解图解Access数据库转化为SQLite数据库的方法Oracle数据库GLOBAL_NAMES参数的详细研究PostgreSQL数据库中pg_hba.conf文件的使用详解PostgreSQL安装及Streaming Replication配置详解