MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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


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

  • ストアドプロシージャはコンパイルおよび保存されるため、プロシージャを呼び出すたびに応答が速くなります。

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

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

  • プロシージャを使用すると、コードの繰り返しを回避できます。さらに、これらを使用すると、保存された関数の呼び出しなど、追加のSQL機能を使用できます。

  • ストアドプロシージャをコンパイルすると、任意の数のアプリケーションで使用できるようになります。変更が必要な場合は、アプリケーションコードに触れることなく手順を変更できます。

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

次の説明を含むEmployeesという名前のテーブルを作成したと仮定します。

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| Name     | varchar(255) | YES  |     | NULL    |       |
| Salary   | int(11)      | NO   |     | NULL    |       |
| Location | varchar(255) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+

次のようにデータをEmployeesテーブルに挿入するmyProcedureという名前のプロシージャがあるとします。

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テーブルの内容を確認すると、以下に示すように、新しく追加された行を見つけることができます。

+-----------+--------+----------------+
| Name      | Salary | Location       |
+-----------+--------+----------------+
| Amit      | 3000   | Hyderabad      |
| Kalyan    | 4000   | Vishakhapatnam |
+-----------+--------+----------------+

  1. Cのトークンは何ですか?

    トークンは、コンパイラにとって意味のあるプログラムの最小要素に他なりません。プログラムを最小単位に分割するコンパイラはトークンと呼ばれ、これらのトークンはコンパイルのさまざまな段階に進みます。 タイプ トークンはさまざまなタイプに分類されます。以下に説明します- キーワード 識別子 定数 文字列 特別な記号 オペレーター 例 以下に示すのは、Cプログラムの識別子、キーワード、変数などの使用です。 。 #include <stdio.h> int main(){    int a,b,c;    printf("ente

  2. WiFi ACとは何ですか?それが私たちに提供する利点は何ですか?

    テクノロジー市場は進化しています。このため、インターネットへのワイヤレス通信を提供するWiFiACに到達しました。 。この新しい標準メカニズムは、接続がより高速で高品質に機能するようにします。 WiFiACは5GHz帯域で動作し、通信への干渉が少なく、160MHzで8つのMIMOストリームを備えています。 WiFiは4つのMIMOでのみ機能するわけではありません。 この新しいメカニズムは、ビームフォーミングテクノロジーを備えているため、パフォーマンスと信号強度を向上させることができます。次に、彼は256-QAM変調を使用します。 これにより、データをより高速に送信できます。 WiFi A