エンタープライズレベルのアプリケーションの開発に伴い、Java や MySQL などのプログラミング言語とデータベース システムがエンタープライズ アプリケーションの開発をサポートするために広く使用されています。 MySQL ストアド プロシージャは、MySQL データベース内で複数の SQL ステートメントを実行できるプリコンパイルされた SQL コード スクリプトです。オブジェクト指向プログラミング言語としての Java の利点は、開発者がオブジェクト指向メソッドを使用してコードを管理および保守できることです。
この記事では、Java が MySQL ストアド プロシージャを呼び出す方法を紹介し、ストアド プロシージャの実際のアプリケーション シナリオも紹介します。
1. MySQL ストアド プロシージャ
MySQL ストアド プロシージャは、MySQL データベースに保存されている一連の SQL ステートメントのコレクションです。この一連の SQL ステートメントは名前を通じて呼び出され、パラメータを運ぶことができます。ストアド プロシージャは複数の接続で再利用できるため、複数のクライアントが MySQL データベースに接続して同じ SQL ステートメントを実行する問題を効果的に解決でき、SQL の実行効率が向上します。
MySQL ストアド プロシージャは、たとえば、ステートメントを使用して定義できます:
CREATE PROCEDURE p_GetMovieRecords (OUT p_count INT) BEGIN SELECT COUNT(*) INTO p_count FROM movies; END;
上記のストアド プロシージャは、p_GetMovieRecords という名前です。出力パラメータ p_count があります。実行後、ムービー内のレコードの数が表示されます。テーブルがクエリされ、数量が出力パラメータ p_count に割り当てられます。
2. Java による MySQL ストアド プロシージャの呼び出し
Java は JDBC を通じて MySQL データベースに接続し、Statement から継承した PreparedStatement オブジェクトと CallableStatement オブジェクトを使用して MySQL ストアド プロシージャを呼び出すことができます。
PreparedStatement は Statement を継承し、SQL ステートメントの実行時にプリコンパイルして、SQL ステートメントが実行されるたびに再コンパイルされることを回避できます。ただし、MySQL ストアド プロシージャ呼び出しの場合は、プリコンパイルされた CallableStatement オブジェクトが必要です。
まず、MySQL データベース接続を取得する必要があります:
// 加载MYSQL JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 连接MYSQL数据库 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test");
接続を取得した後、CallableStatement オブジェクトを使用してストアド プロシージャ呼び出しをプリコンパイルする必要があります:
// 定义MySQL存储过程名称及参数 String sql = "{call p_GetMovieRecords(?)}"; // 创建CallableStatement对象调用存储过程 CallableStatement call = conn.prepareCall(sql); // 注册输出参数 call.registerOutParameter(1, Types.INTEGER); // 执行存储过程 call.execute(); // 获取输出参数值 int count = call.getInt(1);
CallableStatement は SQL ステートメントをプリコンパイルすることもできますが、特にストアド プロシージャを呼び出すために使用されます。 PreparedStatement との違いは、CallableStatement オブジェクトが次のようなストアド プロシージャ呼び出しの構文を使用することです:
// 定义MySQL存储过程名称及参数 String sql = "{call p_GetMovieRecords(?)}"; // 创建CallableStatement对象调用存储过程 CallableStatement call = conn.prepareCall(sql); // 注册输出参数 call.registerOutParameter(1, Types.INTEGER); // 执行存储过程 call.execute(); // 获取输出参数值 int count = call.getInt(1);
3. MySQL ストアド プロシージャの実用的なアプリケーション シナリオ
MySQL ストアド プロシージャは通常、実行に使用されます。複雑なクエリ操作を可能にし、パフォーマンスを最適化し、データ クエリの速度を向上させることができます。ストアド プロシージャの使用シナリオは次のとおりです。
データ ウェアハウスは、企業内のさまざまなビジネス データを保存するために使用されるビッグ データ ウェアハウスであり、大量のデータ ウェアハウスを必要とします。データ処理と変換。ストアド プロシージャは、複雑なクエリ ステートメントを通じて大量のデータを抽出し、データ ウェアハウスの対応するアプリケーションをサポートするために企業が必要とする形式に変換できます。
バッチ データ処理は企業における重要なアプリケーション シナリオです。たとえば、1 つのテーブル内のすべてのレコードを別のテーブルまたは複数のテーブルにコピーし、バッチ更新を実行します。または削除操作など。ストアド プロシージャを使用して、特定の操作用の複雑で効率的な SQL ステートメントを作成します。
ビジネス ロジック処理はエンタープライズ レベルのアプリケーションの重要な部分であるため、開発者は開発中にさまざまなロジック処理を実行する必要があることがよくあります。正確な条件を確認して、新しいテーブルにデータを挿入したり、古いテーブルを更新したりできます。この時点で、ストアド プロシージャを使用して MySQL データベース内のこれらのロジックを処理し、より効率的に処理できます。
全体として、ストアド プロシージャは、データ処理の高速化、パフォーマンスの最適化、ビジネス ロジック処理などに重要な用途を備えた非常に便利なツールであり、エンタープライズ レベルのアプリケーションの開発効率を大幅に向上させることができます。
以上がJava mysqlストアドプロシージャはストアドプロシージャを呼び出しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。