在Java语言中调用存储步骤
发布时间:2021-12-16 13:14:04 所属栏目:教程 来源:互联网
导读:首先一定要连接数据库啊 private static Connection conn; static{ //第一步:加载驱动 try { Class.forName(Oracle.jdbc.driver.OracleDriver); //得到连接对象 conn=DriverManager.getConnection(jdbc:oracle:thin:@localhost:1521:orcl,scott,scott); } c
首先一定要连接数据库啊 private static Connection conn; static{ //第一步:加载驱动 try { Class.forName("Oracle.jdbc.driver.OracleDriver"); //得到连接对象 conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","scott"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 实例一: 【 create or replace procedure selectEmp(emp_no in number,ename out varchar2,job out varchar2,sal out number,deptno out number) is begin select ename,job,sal,deptno into ename,job,sal,deptno from emp where empno=emp_no; end selectEmp; 】 //调用存储过程 public static void procedure() throws SQLException{ //创建CallableStatement 参数in out 通过占位符传值 CallableStatement cas=conn.prepareCall("{call selectEmp(?,?,?,?,?)}"); //从1开始 int index = 1; //为占位符赋值 cas.setInt(index++, 7369);//赋值的是输入参数 //输出参数 cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.VARCHAR); cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.VARCHAR); cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.NUMBER); cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.NUMBER); //根据传递的参数值执行操作 如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false boolean flag=cas.execute(); System.out.println(flag); if(!flag){//执行成功了 String ename=cas.getString(2); String job=cas.getString(3); int sal=cas.getInt(4); int deptno=cas.getInt(5); System.out.println(ename); System.out.println(job); System.out.println(sal); System.out.println(deptno); } } ![]() (编辑:我爱制作网_潮州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |