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;
相关文章
标签:Oracle