ホームページ  >  記事  >  データベース  >  JavaプログラムでMySQLストアドプロシージャを呼び出す方法

JavaプログラムでMySQLストアドプロシージャを呼び出す方法

PHPz
PHPzオリジナル
2023-04-19 14:11:34936ブラウズ

Java は広く使用されているプログラミング言語です。Web アプリケーションを開発する場合、多くの場合、データを処理するために MySQL ストアド プロシージャを呼び出す必要があります。この記事では、Java プログラムで MySQL ストアド プロシージャを呼び出す方法を詳しく紹介します。

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

MySQL ストアド プロシージャは、複雑な SQL クエリとデータ操作をカプセル化し、必要なときに呼び出すことができる SQL コードのコレクションです。通常、ストアド プロシージャは通常の SQL ステートメントよりも高速に実行されます。

MySQL ストアド プロシージャは、MySQL クライアントまたは MySQL Workbench などの管理ツールを通じて作成できます。ストアド プロシージャの作成方法は SQL ステートメントの作成に似ていますが、DELIMITER コマンドを使用してターミネータを指定する必要があります。たとえば、次のコードは単純なストアド プロシージャを作成します。

DELIMITER //
CREATE PROCEDURE GetProductList()
BEGIN
SELECT * FROM products;
END //
DELIMITER ;

上記のコードでは、DELIMITER で終了文字を「//」として指定し、ストアド プロシージャ名は GetProductList で、SELECT ステートメントはテーブルからのものです。 「products」の全データを取得します。

2. Java での MySQL ストアド プロシージャの呼び出し

MySQL ストアド プロシージャの呼び出しは、通常の SQL ステートメントの呼び出しと似ており、Java JDBC API を使用する必要があります。以下は、JDBC API を使用して MySQL ストアド プロシージャを呼び出すための基本的な手順です。

  1. JDBC ドライバーのロード

Java プログラムで JDBC API を使用する場合は、最初に MySQL JDBC ドライバーをロードする必要があります。 Class.forName() メソッドを使用してドライバーをロードすることも、JDBC ドライバー jar パッケージを通じてドライバーを登録することもできます。例:

Class.forName("com.mysql.cj.jdbc.Driver");
  1. データベース接続の確立

データベース接続を確立するには、サーバー アドレス、データベース名、ユーザー名、パスワード、およびその他の情報を指定する必要があります。 。データベース接続は、DriverManager クラスの getConnection() メソッドを通じて確立できます。例:

String url = "jdbc:mysql://localhost:3306/mydb";
String user = "myuser";
String password = "mypassword";

Connection conn = DriverManager.getConnection(url, user, password);
  1. CallableStatement オブジェクトの作成

MySQL ストアド プロシージャを呼び出すには、 CallableStatement オブジェクトの使用。これは渡すことができます。 Connection.prepareCall() メソッドによって作成されます。例:

String call = "{call GetProductList()}";
CallableStatement stmt = conn.prepareCall(call);

ストアド プロシージャ名は中括弧 "{}" で囲み、先頭に "{call}" を付ける必要があることに注意してください。

  1. パラメータを設定してストアド プロシージャを実行する

MySQL ストアド プロシージャを呼び出す前に、入力パラメータと出力パラメータ (存在する場合) を設定する必要があります。入力パラメータは setXXX() メソッドを使用して設定され、出力パラメータはプロシージャの呼び出し後に registerOutParameter() メソッドを使用して登録されます。ストアド プロシージャを実行するには、CallableStatement.execute() メソッドまたは CallableStatement.executeQuery() メソッドを使用します。例:

ResultSet rs = stmt.executeQuery();
while (rs.next()) {
    // 处理查询结果
}
  1. 接続を閉じてリソースを解放します

データベース接続と CallableStatement オブジェクトを使用した後は、次のような問題が発生しないように、適切なタイミングで接続を閉じてリソースを解放する必要があります。リソースの無駄とメモリリーク。

MySQL ストアド プロシージャを呼び出すための完全な Java コード例は次のとおりです:

import java.sql.*;

public class CallStoredProcedure {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

            String url = "jdbc:mysql://localhost:3306/mydb";
            String user = "myuser";
            String password = "mypassword";

            Connection conn = DriverManager.getConnection(url, user, password);

            String call = "{call GetProductList()}";
            CallableStatement stmt = conn.prepareCall(call);

            ResultSet rs = stmt.executeQuery();
            while (rs.next()) {
                // 处理查询结果
            }

            rs.close();
            stmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3. 概要

この記事の導入部を通じて、読者は MySQL ストアド プロシージャを呼び出す方法を学ぶことができます。 Java プログラムのプロシージャ プロセスの基本的な手順と考慮事項。ストアド プロシージャを使用すると、SQL の実行効率とデータ処理パフォーマンスが向上し、複雑な Web アプリケーション開発において大きな実用的価値があります。

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

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