JDBC调用Oracle存储过程返回结果集并获得输出参数实例
作者:域名 来源:应用开发 浏览: 【大中小】 发布时间:2025-11-05 01:03:33 评论数:

复制package xx.qq.app; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.mchange.v2.c3p0.ComboPooledDataSource; /** * @author Jack Zhang Email:fish2-2@163.com * @date 2011-08-22 */ public class AppTest { public static void main(String[] args) throws Exception { ApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "applicationContext.xml" }); BeanFactory factory = (BeanFactory) context; ComboPooledDataSource dataSource = (ComboPooledDataSource) factory .getBean("dataSource"); Connection con = dataSource.getConnection(); CallableStatement st =con.prepareCall("{call package_user.PERSON_QUERY(?调用,?)}"); //st.setString(1, ""); st.registerOutParameter(1, oracle.jdbc.OracleTypes.CURSOR); st.registerOutParameter(2, oracle.jdbc.OracleTypes.INTEGER); st.execute(); ResultSet rs = null; rs = (ResultSet)st.getObject(1); while(rs.next()) { System.out.println(rs.getObject(1)+" "+rs.getObject(2)); } int count =st.getInt(2); //获取输出参数 System.err.println(count); if (rs != null) rs.close(); if (st != null) st.close(); if (con != null) con.close(); } } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.
