ホームページ >データベース >mysql チュートリアル >Javaを使用してMySQLストアドプロシージャを呼び出す方法
MySQL ストアド プロシージャは、複数の SQL ステートメントを単一の反復可能な実行ユニットにカプセル化するユーザー定義関数です。ストアド プロシージャを呼び出すと、データベースの操作効率とセキュリティが向上します。アプリケーション開発の主流の開発言語として、Java は MySQL とうまく対話できます。この記事では、Java を使用して MySQL ストアド プロシージャを呼び出す方法を学習します。
始める前に、次の 2 つの準備が完了していることを確認する必要があります。
1.1 MySQL データベース
まず、MySQL データベースをインストールして構成する必要があります。 MySQL の公式 Web サイトからインストール パッケージをダウンロードし、公式ドキュメントに従ってインストールおよび設定できます。
1.2 Java 開発環境
次に、JDK や開発ツールを含む Java 開発環境が必要です。 Eclipse、IntelliJ IDEA、NetBeans など、多くの Java 開発ツールがあります。この記事では、デモンストレーションの例として Eclipse を使用します。
この記事では、単純な MySQL ストアド プロシージャを例として取り上げます。ストアド プロシージャは 2 つのパラメータを受け取り、それらを追加して結果を返します。
まず、MySQL データベースにログインし、次のステートメントを使用して add_demo という名前のストアド プロシージャを作成します。
CREATE PROCEDURE add_demo (IN a INT, IN b INT, OUT c INT) BEGIN SET c = a + b; END
上記のステートメントを実行すると、add_demo という名前のストアド プロシージャが MySQL データベースに作成されます。
Java で MySQL ストアド プロシージャを呼び出すには、通常、JDBC CallableStatement オブジェクトを使用する必要があります。
3.1 JDBC ドライバーをロードする
Java では、Class.forName() メソッドを通じて MySQL ドライバーをロードする必要があります。コードは次のとおりです。
Class.forName("com.mysql.jdbc.Driver");
3.2 MySQL データベースに接続します
DriverManager の getConnection() メソッドを使用してデータベース接続オブジェクトを作成します。コードは次のとおりです:
Connection conn = DriverManager.getConnection(url, username, password);
このうち、url はデータベースの接続文字列、ユーザー名ですとパスワードは、データベースに接続するためのユーザー名とパスワードです。
3.3 CallableStatement オブジェクトの作成
データベースに接続した後、ストアド プロシージャを実行するために CallableStatement オブジェクトを作成する必要があります。コードは次のとおりです。
CallableStatement cstmt = conn.prepareCall("{call add_demo(?,?,?)}");
このうち、{call add_demo(?,?,?)} はストアド プロシージャを呼び出すための構文です。ストアド プロシージャには 3 つのパラメータがあるため、これら 3 つのパラメータを表すために 3 つの疑問符が使用されます。
3.4 パラメータの設定
CallableStatement オブジェクトを作成した後、ストアド プロシージャのパラメータ値を設定する必要があります。コードは次のとおりです。
cstmt.setInt(1, 1); cstmt.setInt(2, 2); cstmt.registerOutParameter(3, Types.INTEGER);
このうち、setInt() メソッドはストアド プロシージャの最初の 2 つのパラメータを設定するために使用され、registerOutParameter() メソッドはストアド プロシージャの 3 番目のパラメータを登録するために使用されます。このパラメータは出力パラメータであり、ストアド プロシージャの実行結果の戻り値の型を示します。
3.5 ストアド プロシージャの実行
パラメータを設定した後、ストアド プロシージャを実行できます。コードは次のとおりです。
cstmt.execute();
3.6 ストアド プロシージャの実行結果の取得
ストアド プロシージャの実行後、ストアド プロシージャの実行結果を取得する必要があります。コードは次のとおりです。
int result = cstmt.getInt(3);
getInt() メソッドは、ストアド プロシージャの出力パラメータの値を取得するために使用されます。
次は、MySQL ストアド プロシージャを呼び出す方法を示す完全な Java の例です。
import java.sql.*; public class Demo { public static void main(String[] args) { String url = "jdbc:mysql://localhost:3306/test"; String username = "root"; String password = "123456"; try { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, username, password); CallableStatement cstmt = conn.prepareCall("{call add_demo(?,?,?)}"); cstmt.setInt(1, 1); cstmt.setInt(2, 2); cstmt.registerOutParameter(3, Types.INTEGER); cstmt.execute(); int result = cstmt.getInt(3); System.out.println("Result: " + result); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } }
参考
以上がJavaを使用してMySQLストアドプロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。