首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

创设存储过程并用java调用实例

2013-10-19 
创建存储过程并用java调用实例先要在pl/sql中建立相关表和存储过程用eclipse建立测试类TestProcedureimpor

创建存储过程并用java调用实例
先要在pl/sql中建立相关表和存储过程


用eclipse建立测试类TestProcedure

import java.sql.*;public class TestProcedure {/** * @param args */public static void main(String[] args) {String driver = "oracle.jdbc.driver.OracleDriver";    String strUrl = "jdbc:oracle:thin:@192.168.16.161:1521:ora11g";    Connection conn = null;    CallableStatement cstmt = null;    ResultSet rs=null;    try {      Class.forName(driver);      conn =  DriverManager.getConnection(strUrl, "wu", "1");      /** 调用无返回值的存储过程 */      cstmt = conn.prepareCall("{ call testa(?,?) }");      cstmt.setInt(1, 1);      cstmt.setString(2, "TestOne");      cstmt.execute();      System.out.println("插入数据成功");      /** 调用有返回值的存储过程 */      cstmt = conn.prepareCall("{ call testb(?,?) }");      cstmt.setInt(1, 1);      cstmt.registerOutParameter(2, Types.VARCHAR);      cstmt.execute();      String testPrint = cstmt.getString(2);      System.out.println("name:"+testPrint);      /** 调用有返回值且是多条记录的存储过程 */      cstmt = conn.prepareCall("{ call testc(?) }");      cstmt.setInt(1, 1);      cstmt.registerOutParameter(1,oracle.jdbc.OracleTypes.CURSOR);      cstmt.execute();      rs = (ResultSet)cstmt.getObject(1);      while(rs.next())      {          System.out.println("id:" + rs.getString(1) + " name:"+rs.getString(2));      }    }    catch (Exception ex) {      ex.printStackTrace();    }    finally{            try {            if(conn!=null){            conn.close();            }            if(cstmt!=null){            cstmt.close();            }            }catch (Exception e) {e.printStackTrace();}    }}}

参考:http://www.blogjava.net/TrampEagle/archive/2005/12/13/23605.html


热点排行