ホームページ データベース Oracle oracle Javaはストアドプロシージャを呼び出します

oracle Javaはストアドプロシージャを呼び出します

May 07, 2023 pm 07:55 PM

Oracle データベースは現在世界で最も広く使用されているリレーショナル データベース管理システムであり、Java は最も人気のあるプログラミング言語の 1 つであり、複数のプラットフォームで実行できます。実際のアプリケーションでは、Java と Oracle は通常一緒に使用されるため、Java で Oracle データベースのストアド プロシージャを呼び出す方法を知っておく必要があります。

ストアド プロシージャは、Oracle データベース管理システムによってコンパイルされ、データベースに保存できる事前定義された SQL ステートメントのセットです。ストアド プロシージャを使用すると、データベースのパフォーマンスを向上させることができ、複数ステップの操作を完了する必要がある開発者にとって非常に便利なツールです。 Java プログラマはストアド プロシージャを呼び出してデータベース操作を完了できます。

Java プログラムが Oracle ストアド プロシージャを呼び出すための主な手順は次のとおりです。

  1. JDBC ドライバーのインポート

Java プログラムでは、 Oracle データベースに接続するには、JDBC ドライバーをインポートする必要があります。 Oracle は、JDBC ドライバー oracle.jdbc.driver.OracleDriver を提供しています。 Java プログラムがそれを使用してデータベース接続を取得できるように、JDBC ドライバーを Java プログラムのクラスパスにインポートする必要があります。

  1. データベース接続の取得

Java プログラムでは、データベースへの接続を取得する必要があります。 JDBC が提供する DriverManager クラスを使用して、データベースへの接続を取得できます。 getConnection メソッドは、データベースへの接続を取得するために使用され、データベース接続文字列、ユーザー名、およびパスワードをパラメーターとして渡す必要があります。

  1. ストアド プロシージャを呼び出すためのステートメントを準備する

Java プログラムでは、ストアド プロシージャを呼び出すためのステートメントを準備する必要があります。 Oracle データベースでは、ストアド プロシージャは CallableStatement クラスを通じて呼び出されます。 CallableStatement クラスは、ストアド プロシージャの呼び出しを処理する PreparedStatement クラスのサブクラスであり、ストアド プロシージャの呼び出しに必要なメソッドが含まれています。

  1. パラメータのバインド

Java プログラムでは、ストアド プロシージャのパラメータをバインドする必要があります。 CallableStatement クラスの setXXX メソッドを使用して、パラメーターをストアド プロシージャ呼び出しにバインドできます。 setXXX メソッドの XXX は、int、String、double など、メソッドにバインドされたパラメータのタイプを表します。

  1. ストアド プロシージャを実行する

ストアド プロシージャを呼び出すステートメントを準備し、パラメータをバインドしたら、ストアド プロシージャを実行できます。 Javaプログラムでは、CallableStatementクラスのexecuteメソッドまたはexecuteQueryメソッドを使用してストアドプロシージャを実行できます。

  1. 戻り値の処理

ストアド プロシージャは、カーソルやパラメータ値などのいくつかの値を返すことができます。 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Oracleでユーザーと役割を作成するにはどうすればよいですか? Oracleでユーザーと役割を作成するにはどうすればよいですか? Mar 17, 2025 pm 06:41 PM

この記事では、SQLコマンドを使用してOracleでユーザーと役割を作成する方法について説明し、役割の使用を含むユーザー許可を管理するためのベストプラクティス、最小特権の原則、定期的な監査について説明します。

敏感なデータを保護するために、Oracleデータのマスキングとサブセットを使用するにはどうすればよいですか? 敏感なデータを保護するために、Oracleデータのマスキングとサブセットを使用するにはどうすればよいですか? Mar 13, 2025 pm 01:19 PM

この記事では、敏感なデータを保護するためのソリューションであるOracle Data Masking and Subsetting(DMS)を詳しく説明しています。 機密データの特定、マスキングルールの定義(シャッフル、代替、ランダム化)、ジョブの設定、監視、および展開をカバーします

PL/SQLのカーソルを使用して、複数のデータを処理するにはどうすればよいですか? PL/SQLのカーソルを使用して、複数のデータを処理するにはどうすればよいですか? Mar 13, 2025 pm 01:16 PM

この記事では、列ごとのデータ処理用のPL/SQLカーソルについて説明します。 それは、暗黙、明示、およびREFカーソルを比較して、カーソル宣言、開閉、フェッチ、および閉鎖を詳述しています。 効率的な大規模なデータセットの取り扱いとループの使用の手法

最小限のダウンタイムでOracleでオンラインバックアップを実行するにはどうすればよいですか? 最小限のダウンタイムでOracleでオンラインバックアップを実行するにはどうすればよいですか? Mar 17, 2025 pm 06:39 PM

この記事では、RMANを使用した最小限のダウンタイムでOracleでオンラインバックアップを実行する方法、ダウンタイムを減らし、データの一貫性を確保し、バックアップの進捗を監視するためのベストプラクティスを実行する方法について説明します。

透明なデータ暗号化(TDE)を使用して、Oracleで暗号化を構成するにはどうすればよいですか? 透明なデータ暗号化(TDE)を使用して、Oracleで暗号化を構成するにはどうすればよいですか? Mar 17, 2025 pm 06:43 PM

この記事では、Oracleで透明なデータ暗号化(TDE)を構成する手順を概説し、ウォレットの作成、TDEの有効化、およびさまざまなレベルでのデータ暗号化の詳細を説明します。また、データ保護やコンプライアンスなどのTDEのメリット、およびVeriの方法についても説明しています

仮想プライベートデータベース(VPD)を使用してOracleデータベースにセキュリティポリシーを実装するにはどうすればよいですか? 仮想プライベートデータベース(VPD)を使用してOracleデータベースにセキュリティポリシーを実装するにはどうすればよいですか? Mar 13, 2025 pm 01:18 PM

この記事では、仮想プライベートデータベース(VPD)を使用してOracleデータベースセキュリティポリシーの実装を詳しく説明しています。 ユーザーコンテキストに基づいてデータをフィルタリングする関数を介してVPDポリシーの作成と管理を説明し、Pest Pのようなベストプラクティスを強調しています

Oracleで自動ワークロードリポジトリ(AWR)および自動データベース診断モニター(ADDM)を使用するにはどうすればよいですか? Oracleで自動ワークロードリポジトリ(AWR)および自動データベース診断モニター(ADDM)を使用するにはどうすればよいですか? Mar 17, 2025 pm 06:44 PM

この記事では、データベースのパフォーマンス最適化にOracleのAWRとADDMの使用方法について説明します。 AWRレポートの生成と分析の詳細、およびADDMを使用してパフォーマンスボトルネックを識別および解決します。

フラッシュバックテクノロジーを使用して、論理データの破損から回復するにはどうすればよいですか? フラッシュバックテクノロジーを使用して、論理データの破損から回復するにはどうすればよいですか? Mar 14, 2025 pm 05:43 PM

記事では、Oracleのフラッシュバックテクノロジーを使用して、論理データの腐敗から回復し、実装の手順を詳細にし、回復後のデータの整合性を確保することについて説明します。

See all articles