সংরক্ষিত পদ্ধতির সুবিধাগুলি নিম্নরূপ:
-
যেহেতু সংরক্ষিত পদ্ধতিগুলি সংকলিত এবং সংরক্ষণ করা হয়, আপনি যখনই একটি পদ্ধতিতে কল করেন তখনই প্রতিক্রিয়া দ্রুত হয়৷
-
আপনি একটি পদ্ধতিতে সমস্ত প্রয়োজনীয় SQL স্টেটমেন্ট গ্রুপ করতে পারেন এবং সেগুলি একবারে চালাতে পারেন।
-
যেহেতু পদ্ধতিগুলি ডাটাবেস সার্ভারে সংরক্ষণ করা হয় যা ক্লায়েন্টের চেয়ে দ্রুত। আপনি এটি ব্যবহার করে সমস্ত জটিল প্রশ্নগুলি সম্পাদন করতে পারেন, যা দ্রুততর হবে৷
৷ -
পদ্ধতি ব্যবহার করে, আপনি কোডের পুনরাবৃত্তি এড়াতে পারেন এর সাথে আপনি অতিরিক্ত SQL কার্যকারিতা ব্যবহার করতে পারেন যেমন সঞ্চিত ফাংশনগুলিকে কল করা।
-
একবার আপনি একটি সংরক্ষিত পদ্ধতি কম্পাইল করলে আপনি যেকোন সংখ্যক অ্যাপ্লিকেশনে এটি ব্যবহার করতে পারেন। যদি কোন পরিবর্তনের প্রয়োজন হয় তবে আপনি অ্যাপ্লিকেশন কোড স্পর্শ না করে পদ্ধতিগুলি পরিবর্তন করতে পারেন৷
-
আপনি জাভা থেকে PL/SQL সঞ্চিত পদ্ধতি এবং PL/SQL থেকে জাভা সঞ্চিত পদ্ধতিতে কল করতে পারেন।
উদাহরণ
অনুমান করুন আমরা নিম্নলিখিত বর্ণনা সহ কর্মচারী নামে একটি টেবিল তৈরি করেছি:
+----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | Name | varchar(255) | YES | | NULL | | | Salary | int(11) | NO | | NULL | | | Location | varchar(255) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+
অনুমান করুন আমাদের কাছে 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 প্রোগ্রাম অনুসরণ করে উপরে উল্লিখিত জাভা সংরক্ষিত পদ্ধতি বলা হয়।
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......
আপনি যদি কর্মচারী টেবিলের বিষয়বস্তু যাচাই করেন, তাহলে আপনি নীচের দেখানো হিসাবে নতুন যোগ করা সারিগুলি খুঁজে পেতে পারেন:
+-----------+--------+----------------+ | Name | Salary | Location | +-----------+--------+----------------+ | Amit | 3000 | Hyderabad | | Kalyan | 4000 | Vishakhapatnam | +-----------+--------+----------------+