ストアド プロシージャの利点は次のとおりです。
ストアド プロシージャはコンパイルされて保存されるため、プロシージャが呼び出されるたびに、応答は次のようになります。とても早いです。
必要なすべての 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 サイトの他の関連記事を参照してください。