天天向上... ...

一切皆有可能!

java调用存储过程

什么是存储过程?
存储过程是指保存在数据库并在数据库端执行的程序。存储过程是为嵌入式SQL所设计
 
如何调用存储过程?
 
try{
     int age = 39;
    String poetName = "dylan thomas";
    CallableStatement proc = connection.prepareCall("{ call set_death_age(?, ?) }");
    proc.setString(1, poetName);
    proc.setInt(2, age);
    cs.execute();
}catch (SQLException e){ // ....}
   
    传给prepareCall方法的字串是存储过程调用的书写规范。它指定了存储过程的名称,?代表了你需要指定的参数。
 
存储过程可以有返回值
所以CallableStatement类有类似getResultSet这样的方法来获取返回值。当存储过程返回一个值时,你必须使用registerOutParameter方法告诉JDBC驱动器该值的SQL类型是什么。你也必须调整存储过程调用来指示该过程返回一个值。
 
connection.setAutoCommit(false);
CallableStatement proc = connection.prepareCall("{ ? = call snuffed_it_when(?) }");
proc.registerOutParameter(1, Types.INTEGER);
proc.setString(2, poetName);
cs.execute();
int age = proc.getInt(2);
 
复杂的返回值
static void sendEarlyDeaths(PrintWriter out){
    Connection con = null;
    CallableStatement toesUp = null;
    try {
        con = ConnectionPool.getConnection();
         // PostgreSQL needs a transaction to do this... con.
        setAutoCommit(false); // Setup the call.
        CallableStatement toesUp = connection.prepareCall("{ ? = call list_early_deaths () }");
         toesUp.registerOutParameter(1, Types.OTHER);
         toesUp.execute();
         ResultSet rs = (ResultSet) toesUp.getObject(1);
         while (rs.next()) {
                String name = rs.getString(1);
                int age = rs.getInt(2);
                out.println(name + " was " + age + " years old.");
          }
          rs.close();
       } 
     catch (SQLException e) { // We should protect these calls. toesUp.close(); con.close();
    }
}
 
     因为JDBC并不直接支持从存储过程中返回游标,我们使用Types.OTHER来指示存储过程的返回类型,然后调用getObject()方法并对返回值进行强制类型转换。

阅读更多
个人分类: JAVA
想对作者说点什么? 我来说一句

java调用存储过程

2008年09月15日 217KB 下载

JAVA调用存储过程

2011年08月01日 6KB 下载

java 调用存储过程

2010年06月21日 59KB 下载

Java调用存储过程的2种方法

2009年05月12日 3KB 下载

java 调用ORCAL存储过程

2010年02月06日 5KB 下载

Java中如何调用存储过程

2011年12月15日 49KB 下载

JAVA调用存储过程.txt

2011年04月02日 1KB 下载

Java中如何调用存储过程的代码

2010年08月12日 597B 下载

Oracle数据库精讲与疑难解析

2011年01月13日 64KB 下载

没有更多推荐了,返回首页

不良信息举报

java调用存储过程

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭