ストアド プロシージャの利点は何ですか?

WBOY
リリース: 2023-09-12 19:41:02
転載
1746 人が閲覧しました

ストアド プロシージャの利点は何ですか?

ストアド プロシージャの利点は次のとおりです。

  • ストアド プロシージャはコンパイルされて保存されるため、プロシージャが呼び出されるたびに、応答は次のようになります。とても早いです。

  • 必要なすべての SQL ステートメントをプロシージャにグループ化し、すぐに実行できます。

  • プロシージャはデータベース サーバーに保存されるため、クライアントよりも高速です。これを使用すると、すべての複雑なクエリを実行でき、より高速になります。

  • プロシージャを使用すると、コードの重複を回避でき、ストアド関数の呼び出しなど、追加の SQL 機能を使用できます。

  • ストアド プロシージャをコンパイルした後は、任意の数のアプリケーションで使用できます。変更が必要な場合は、アプリケーション コードに触れることなく、プロセスを変更するだけで済みます。

  • Java から PL/SQL ストアド プロシージャを呼び出すことも、PL/SQL から Java ストアド プロシージャを呼び出すこともできます。

次の説明を持つ「Employees」という名前のテーブルを作成するとします。

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name     | varchar(255) | YES  |     | NULL    |       |
| Salary   | int(11)      | NO   |     | NULL    |       |
| Location | varchar(255) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
ログイン後にコピー

myProcedure という名前のテーブルがあるとします。 Employees テーブルにデータを挿入するコードは次のとおりです。

Create procedure myProcedure (IN name VARCHAR(30), IN sal INT, IN loc VARCHAR(45))
   -> BEGIN
   -> INSERT INTO Employees(Name, Salary, Location) VALUES (name, sal, loc);
   -> END //
ログイン後にコピー

次の JDBC プログラムは、上記の Java ストアド プロシージャを呼び出します。

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Example {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/testdb";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Preparing a CallableStatement
      CallableStatement cstmt = con.prepareCall("{call myProcedure(?, ?, ?)}");
      cstmt.setString(1, "Amit");
      cstmt.setInt(2, 3000);
      cstmt.setString(3, "Hyderabad");
      cstmt.execute();
      cstmt.setString(1, "Kalyan");
      cstmt.setInt(2, 4000);
      cstmt.setString(3, "Vishakhapatnam");
      cstmt.execute();
   }
}
ログイン後にコピー

出力

Connection established......
ログイン後にコピー

Employees テーブルの内容を確認すると、次のように新しく追加された行を見つけることができます。

以上がストアド プロシージャの利点は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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