ホームページ > データベース > mysql チュートリアル > Java と MySQL を使用してストアド プロシージャを呼び出す方法

Java と MySQL を使用してストアド プロシージャを呼び出す方法

PHPz
リリース: 2023-04-17 17:27:35
オリジナル
668 人が閲覧しました

Web アプリケーションの人気が高まるにつれて、データベースに対する需要もますます高まっています。ストアド プロシージャは、セキュリティとパフォーマンスを向上させながら SQL ステートメントを繰り返し記述する労力を軽減するため、大規模なデータベースでは一般的な手法となっています。この記事では、Java と MySQL を使用してストアド プロシージャを呼び出す方法を紹介します。

  1. ストアド プロシージャとは

ストアド プロシージャは、入力パラメータを受け取り、特定の操作を実行して結果を返すことができる SQL ステートメントのコレクションです。ストアド プロシージャはデータベースに事前に作成しておいて、アプリケーションで呼び出すことができます。これらの利点には、再利用性、パフォーマンスの向上、コードの簡素化、データベースの負荷の軽減などが含まれます。

  1. Java を使用してストアド プロシージャを呼び出す

Java でストアド プロシージャを呼び出すには、JDBC (Java Database Connectivity) API を使用する必要があります。具体的な手順は次のとおりです。

1) まず、データベース接続を作成する必要があります。 JDBC 接続オブジェクトを使用してデータベース接続を作成できます。

Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
ログイン後にコピー

ここで、url はデータベースの URL、ユーザーとパスワードはデータベースへのアクセスに必要なユーザー名とパスワードです。

2) CallableStatement オブジェクトを作成します。 CallableStatement オブジェクトは、ストアド プロシージャを実行するためのコア オブジェクトです。これを使用してストアド プロシージャを呼び出し、パラメータを渡すことができます:

String sql = "{call getEmployeesByJob(?, ?)}";
CallableStatement cstmt = conn.prepareCall(sql);
ログイン後にコピー

このうち、getEmployeesByJob はストアド プロシージャの名前で、? は入力のプレースホルダです。または出力パラメータ。

3) パラメータを設定します。ストアド プロシージャの入力パラメータを設定するには、setXXX メソッドを使用できます。XXX はパラメータのデータ型を表します。たとえば、文字列型パラメータの場合、setString メソッド:

cstmt.setString(1, "Manager");
ログイン後にコピー

4) を使用してストアド プロシージャを実行できます。ストアド プロシージャを実行するには、execute メソッドを使用できます。

ResultSet rs = cstmt.execute();
ログイン後にコピー

この例では、ストアド プロシージャの結果は ResultSet オブジェクトです。

5) 結果を処理します。ストアド プロシージャの結果の種類に応じて、ResultSet メソッドまたは getXXX メソッドを使用して結果を処理できます。たとえば、ストアド プロシージャが文字列型の結果を返す場合は、getString メソッドを使用できます。

if (rs.next()) {
    String result = rs.getString(1);
}
ログイン後にコピー
  1. MySQL を使用してストアド プロシージャを呼び出す

MySQL は関数をサポートしています。ストアド プロシージャは、SQL、C、Java などのさまざまな言語で作成できます。この記事ではSQLを使ってストアドプロシージャを記述し、MySQLを使ってストアドプロシージャを呼び出す方法を主に紹介します。

1) ストアド プロシージャを作成します。ストアド プロシージャは、MySQL の CREATE PROCEDURE ステートメントを使用して作成できます。以下に簡単な例を示します。

CREATE PROCEDURE getEmployeesByJob (IN jobTitle VARCHAR(50), OUT result VARCHAR(50))
BEGIN
SELECT GROUP_CONCAT(lastName SEPARATOR ', ') INTO result FROM employees WHERE jobTitle = jobTitle;
END
ログイン後にコピー

このストアド プロシージャの機能は、指定された役職の従業員を検索し、その姓を文字列に返すことです。

2) ストアド プロシージャを呼び出します。 Java の JDBC API を使用して、MySQL ストアド プロシージャを呼び出すことができます。以下に例を示します。

Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection(url, user, password);
String sql = "{call getEmployeesByJob(?, ?)}";
CallableStatement cstmt = conn.prepareCall(sql);
cstmt.setString(1, "Manager");
cstmt.registerOutParameter(2, Types.VARCHAR);
ResultSet rs = cstmt.executeQuery();
if (rs.next()) {
    String result = cstmt.getString(2);
}
ログイン後にコピー

この例では、JDBC registerOutParameter メソッドを使用してストアド プロシージャの出力パラメータを設定します。

Java で MySQL ストアド プロシージャを呼び出す場合は、ストアド プロシージャまたは SQL ステートメントの名前を直接使用するのではなく、「{call getEmployeesByJob(?, ?)}」などの CALL ステートメントを使用する必要があることに注意してください。 。

  1. 概要

この記事では、Java と MySQL を使用してストアド プロシージャを呼び出す方法を紹介します。ストアド プロシージャを使用すると、データベースのパフォーマンスとセキュリティが向上し、コードの重複が削減されます。 Java では、CallableStatement オブジェクトを使用してストアド プロシージャを呼び出し、ストアド プロシージャの出力結果を処理します。 MySQL では、CREATE PROCEDURE ステートメントを使用してストアド プロシージャを作成し、Java では、JDBC API を使用してストアド プロシージャを呼び出します。これらのテクニックを習得すると、開発者はストアド プロシージャをより効果的に利用できるようになり、Web アプリケーションの品質と効率が向上します。

以上がJava と MySQL を使用してストアド プロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート