Stored Procedure হলো এমন একটি প্রি-ডিফাইন্ড SQL কোডের সেট, যা ডেটাবেসে সংরক্ষিত থাকে এবং নির্দিষ্ট একটি কাজ সম্পাদনের জন্য পুনরায় ব্যবহার করা যায়। HSQLDB-তে Stored Procedures ব্যবহার করা যায় জটিল লজিক পরিচালনা করার জন্য, যা বারবার SQL কোড লেখার প্রয়োজনীয়তা দূর করে।
Stored Procedures এর সুবিধা
- পুনরায় ব্যবহারযোগ্যতা: একবার লিখে এটি একাধিকবার ব্যবহার করা যায়।
- কোড মডুলারিটি: বড় বড় SQL স্টেটমেন্টকে ছোট ছোট মডিউলে ভাগ করা যায়।
- কর্মক্ষমতা বৃদ্ধি: কম্পাইল্ড আকারে সংরক্ষিত হওয়ায় এটি দ্রুত কার্যকর হয়।
- নেটওয়ার্ক লোড হ্রাস: ক্লায়েন্ট এবং সার্ভারের মধ্যে SQL স্টেটমেন্টের সংখ্যা কমে যায়।
- সুরক্ষা: Stored Procedures ব্যবহার করে ডেটাবেসে অ্যাক্সেস নিয়ন্ত্রণ করা সহজ হয়।
HSQLDB-তে Stored Procedures তৈরি করার ধাপসমূহ
HSQLDB-তে Stored Procedures তৈরি করতে, Java ব্যবহার করে একটি প্রক্রিয়া সংজ্ঞায়িত করতে হয় এবং এটি ডেটাবেসে রেজিস্টার করতে হয়।
ধাপ ১: Java ব্যবহার করে প্রক্রিয়া তৈরি করা
Stored Procedure-এর জন্য Java কোড লিখতে হবে। নিচে একটি উদাহরণ দেওয়া হলো:
public class StoredProcedures {
public static void addStudent(int id, String name, String email) throws SQLException {
Connection conn = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "SA", "");
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO students (student_id, name, email) VALUES (?, ?, ?)");
pstmt.setInt(1, id);
pstmt.setString(2, name);
pstmt.setString(3, email);
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
ধাপ ২: Stored Procedure রেজিস্টার করা
HSQLDB-তে Stored Procedure রেজিস্টার করার জন্য CREATE PROCEDURE কমান্ড ব্যবহার করতে হয়। উদাহরণ:
CREATE PROCEDURE add_student(IN id INT, IN name VARCHAR(100), IN email VARCHAR(100))
LANGUAGE JAVA
EXTERNAL NAME 'CLASSPATH:StoredProcedures.addStudent';
উপাদানসমূহ:
IN id,IN name,IN email: ইনপুট প্যারামিটার, যা প্রক্রিয়াটি ব্যবহার করবে।LANGUAGE JAVA: Stored Procedure Java-তে লেখা হয়েছে তা নির্দেশ করে।EXTERNAL NAME: Java ক্লাসের ফাংশন উল্লেখ করে।
ধাপ ৩: Stored Procedure কার্যকর করা
Stored Procedure চালানোর জন্য CALL স্টেটমেন্ট ব্যবহার করা হয়। উদাহরণ:
CALL add_student(1, 'John Doe', 'john.doe@example.com');
ধাপ ৪: Stored Procedure পরীক্ষা করা
ডেটা সঠিকভাবে যোগ হয়েছে কিনা তা যাচাই করতে SELECT স্টেটমেন্ট ব্যবহার করা যায়:
SELECT * FROM students;
উদাহরণ: একটি পূর্ণাঙ্গ Stored Procedure প্রক্রিয়া
টেবিল তৈরি:
CREATE TABLE students (
student_id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
Java কোড:
public class StoredProcedures {
public static void addStudent(int id, String name, String email) throws SQLException {
Connection conn = DriverManager.getConnection("jdbc:hsqldb:mem:testdb", "SA", "");
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO students (student_id, name, email) VALUES (?, ?, ?)");
pstmt.setInt(1, id);
pstmt.setString(2, name);
pstmt.setString(3, email);
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
Stored Procedure তৈরি:
CREATE PROCEDURE add_student(IN id INT, IN name VARCHAR(100), IN email VARCHAR(100))
LANGUAGE JAVA
EXTERNAL NAME 'CLASSPATH:StoredProcedures.addStudent';
Stored Procedure কার্যকর:
CALL add_student(1, 'Alice', 'alice@example.com');
CALL add_student(2, 'Bob', 'bob@example.com');
ডেটা যাচাই:
SELECT * FROM students;
টিপস
- Java ক্লাস পাথ নিশ্চিত করুন: Stored Procedure-এ ব্যবহৃত Java ক্লাসটি ডাটাবেস সার্ভারের CLASSPATH-এ থাকতে হবে।
- সুরক্ষা বজায় রাখুন: Stored Procedure-এ ব্যবহৃত SQL স্টেটমেন্টে ইনপুট প্যারামিটার সঠিকভাবে স্যানিটাইজ করুন।
- ডিবাগিং সহজ করুন: Stored Procedure-এর কোড ছোট এবং সুগঠিত রাখুন।
HSQLDB-তে Stored Procedures তৈরি এবং ব্যবহার ডেটাবেস অ্যাপ্লিকেশনের কার্যক্ষমতা এবং মডুলারিটি বাড়ানোর একটি কার্যকর উপায়। সঠিকভাবে প্রয়োগ করলে এটি ডেভেলপমেন্ট প্রক্রিয়া সহজ এবং কার্যকর করতে পারে।
Read more