易百教程

346、如何使用 CallableStatement 执行存储过程?

以下是创建和执行存储过程的步骤。在这里,使用存储过程创建表 user420 并向其中插入值。

1、 在数据库中创建过程
要调用存储过程,需要在数据库中创建它。在这里,假设存储过程如下所示:

create or replace procedure "INSERTR"  
(id IN NUMBER,  
name IN VARCHAR2)  
is  
begin  
insert into user420 values(id,name);  
end;  
/

表结构如下:

create table user420(id number(10), name varchar2(200));

1、建立网络连接

Class.forName("oracle.jdbc.driver.OracleDriver");  
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");

2、创建 CallableStatement 的对象

CallableStatement stmt=con.prepareCall("{call insertR(?,?)}");

3、使用以下语法提供值并执行查询

stmt.setInt(1,1011);  
stmt.setString(2,"Amit");  
stmt.execute();

查看数据库,这些值将在那里找到。完整的代码将如下所示。


import java.sql.*;

public class Proc {

    public static void main(String[] args) throws Exception {

        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "oracle");

        CallableStatement stmt = con.prepareCall("{call insertR(?,?)}");
        stmt.setInt(1, 1011);
        stmt.setString(2, "Amit");
        stmt.execute();

        System.out.println("success");
    }
}