在Java语言中调用存储过程


首先一定要连接数据库啊 

  1. private static Connection conn;  
  2.     static{  
  3.         //第一步:加载驱动  
  4.             try {  
  5.                 Class.forName("Oracle.jdbc.driver.OracleDriver");  
  6.                 //得到连接对象        conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","scott");  
  7.             } catch (ClassNotFoundException e) {  
  8.                 // TODO Auto-generated catch block  
  9.                 e.printStackTrace();  
  10.             } catch (SQLException e) {  
  11.                 // TODO Auto-generated catch block  
  12.                 e.printStackTrace();  
  13.             }  
  14.     }  

实例一: 

  1. 【  
  2. create or replace procedure selectEmp(emp_no in number,ename out varchar2,job out varchar2,sal out number,deptno out number) is  
  3. begin  
  4. select ename,job,sal,deptno into ename,job,sal,deptno from emp where empno=emp_no;  
  5. end selectEmp;  
  6. 】  
  7. //调用存储过程  
  8.     public static void procedure() throws SQLException{  
  9.         //创建CallableStatement  参数in  out  通过占位符传值  
  10.         CallableStatement cas=conn.prepareCall("{call  selectEmp(?,?,?,?,?)}");  
  11.         //从1开始  
  12.         int index = 1;  
  13.         //为占位符赋值  
  14.         cas.setInt(index++, 7369);//赋值的是输入参数  
  15.         //输出参数  
  16.         cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.VARCHAR);  
  17.         cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.VARCHAR);  
  18.         cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.NUMBER);  
  19.         cas.registerOutParameter(index++, oracle.jdbc.OracleTypes.NUMBER);  
  20.         //根据传递的参数值执行操作       如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false  
  21.         boolean flag=cas.execute();  
  22.         System.out.println(flag);  
  23.         if(!flag){//执行成功了  
  24.             String ename=cas.getString(2);  
  25.             String job=cas.getString(3);  
  26.             int sal=cas.getInt(4);  
  27.             int deptno=cas.getInt(5);  
  28.             System.out.println(ename);  
  29.             System.out.println(job);  
  30.             System.out.println(sal);  
  31.             System.out.println(deptno);  
  32.         }  
  33.     }  
  • 1
  • 2
  • 下一页

相关内容