Oracle データベースは現在世界で最も広く使用されているリレーショナル データベース管理システムであり、Java は最も人気のあるプログラミング言語の 1 つであり、複数のプラットフォームで実行できます。実際のアプリケーションでは、Java と Oracle は通常一緒に使用されるため、Java で Oracle データベースのストアド プロシージャを呼び出す方法を知っておく必要があります。
ストアド プロシージャは、Oracle データベース管理システムによってコンパイルされ、データベースに保存できる事前定義された SQL ステートメントのセットです。ストアド プロシージャを使用すると、データベースのパフォーマンスを向上させることができ、複数ステップの操作を完了する必要がある開発者にとって非常に便利なツールです。 Java プログラマはストアド プロシージャを呼び出してデータベース操作を完了できます。
Java プログラムが Oracle ストアド プロシージャを呼び出すための主な手順は次のとおりです。
Java プログラムでは、 Oracle データベースに接続するには、JDBC ドライバーをインポートする必要があります。 Oracle は、JDBC ドライバー oracle.jdbc.driver.OracleDriver を提供しています。 Java プログラムがそれを使用してデータベース接続を取得できるように、JDBC ドライバーを Java プログラムのクラスパスにインポートする必要があります。
Java プログラムでは、データベースへの接続を取得する必要があります。 JDBC が提供する DriverManager クラスを使用して、データベースへの接続を取得できます。 getConnection メソッドは、データベースへの接続を取得するために使用され、データベース接続文字列、ユーザー名、およびパスワードをパラメーターとして渡す必要があります。
Java プログラムでは、ストアド プロシージャを呼び出すためのステートメントを準備する必要があります。 Oracle データベースでは、ストアド プロシージャは CallableStatement クラスを通じて呼び出されます。 CallableStatement クラスは、ストアド プロシージャの呼び出しを処理する PreparedStatement クラスのサブクラスであり、ストアド プロシージャの呼び出しに必要なメソッドが含まれています。
Java プログラムでは、ストアド プロシージャのパラメータをバインドする必要があります。 CallableStatement クラスの setXXX メソッドを使用して、パラメーターをストアド プロシージャ呼び出しにバインドできます。 setXXX メソッドの XXX は、int、String、double など、メソッドにバインドされたパラメータのタイプを表します。
ストアド プロシージャを呼び出すステートメントを準備し、パラメータをバインドしたら、ストアド プロシージャを実行できます。 Javaプログラムでは、CallableStatementクラスのexecuteメソッドまたはexecuteQueryメソッドを使用してストアドプロシージャを実行できます。
ストアド プロシージャは、カーソルやパラメータ値などのいくつかの値を返すことができます。 Java プログラムでは、CallableStatement クラスの getXXX メソッドを使用して、ストアド プロシージャから返される値を取得する必要があります。
次は、Oracle データベースでストアド プロシージャを呼び出す方法を示すサンプル Java プログラムです:
import java.sql.CallableStatement;
import java.sql.Connection;
import java .sql.DriverManager;
import java.sql.Types;
public class CallPLSQL {
public static void main(String[] args) throws Exception {
// 步骤1:导入JDBC驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); // 步骤2:获取数据库连接 Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL", "user", "password"); // 步骤3:准备调用存储过程的语句 String sql = "{call proc_example(?,?,?)}"; // proc_example是存储过程名 CallableStatement cs = conn.prepareCall(sql); // 步骤4:绑定参数 cs.setInt(1, 123); // 绑定参数1为整型123 cs.registerOutParameter(2, Types.VARCHAR); // 绑定参数2为字符串类型 cs.registerOutParameter(3, Types.NUMERIC); // 绑定参数3为数字类型 // 步骤5:执行存储过程 cs.execute(); // 步骤6:处理返回值 String strResult = cs.getString(2);// 获取返回值 int iResult = cs.getInt(3); // 输出返回值 System.out.println("strResult:" + strResult); System.out.println("iResult:" + iResult); // 关闭连接和语句 cs.close(); conn.close();
}
}
上記の Java サンプル プログラムでは、proc_example という名前のストアド プロシージャを呼び出しました。このストアド プロシージャには 3 つのパラメータがあり、1 つ目は入力パラメータ、2 つ目と 3 つ目は出力パラメータです。プログラムは、registerOutParameter メソッドを使用して、最初のパラメーターを 123 にバインドし、2 番目と 3 番目のパラメーターの型をバインドします。プログラムがストアド プロシージャを実行した後、getXXX メソッドを使用してストアド プロシージャから返される値を取得します。
概要
Java プログラムでは、Oracle ストアド プロシージャの呼び出しは非常に便利なテクノロジです。 JDBC ドライバーと CallableStatement クラスを使用すると、Oracle データベースのストアド プロシージャを簡単に呼び出すことができます。 Java プログラムで多数のデータベース操作を処理する必要がある場合、ストアド プロシージャを呼び出すテクノロジは非常に便利なツールです。同時に、Java プログラマは、Oracle データベースのストアド プロシージャ構文とパラメータ バインド方法にも精通している必要があります。
以上がoracle Javaはストアドプロシージャを呼び出しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。