কম্পিউটার টিউটোরিয়াল

স্টোরড প্রোসিজার-এর সুবিধা কী?


স্টোরড প্রোসিজার-এর সুবিধাগুলো:

  • স্টোরড প্রোসিজার কম্পাইল হয়ে সংরক্ষিত থাকে, তাই কল করলে দ্রুত রেসপন্স দেয়।

  • প্রয়োজনীয় সকল SQL স্টেটমেন্ট একসাথে প্রোসিজারে গ্রুপ করে একবারে এক্সিকিউট করা যায়।

  • প্রোসিজার ডেটাবেস সার্ভারে থাকে যা ক্লায়েন্টের চেয়ে দ্রুত। জটিল কোয়েরি এখানে দ্রুত এক্সিকিউট হয়।

  • প্রোসিজার ব্যবহার করে কোড রিপিটেশন এড়ানো যায়, সাথে অতিরিক্ত SQL ফাংশনালিটি (যেমন স্টোরড ফাংশন কল) ব্যবহার করা যায়।

  • একবার কম্পাইল করলে যেকোনো সংখ্যক অ্যাপ্লিকেশন থেকে ব্যবহার করা যায়। পরিবর্তন প্রয়োজন হলে শুধু প্রোসিজার পরিবর্তন করলেই হয়, অ্যাপ্লিকেশন কোড ছুয়ে দিতে হয় না।

  • PL/SQL স্টোরড প্রোসিজার জাভা থেকে এবং জাভা স্টোরড প্রোসিজার PL/SQL থেকে কল করা যায়।

উদাহরণ

ধরি 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 প্রোগ্রাম উপরের প্রোসিজার কল করে।

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 { 
        // ড্রাইভার রেজিস্টার 
        DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 
        // কানেকশন 
        String mysqlUrl = "jdbc:mysql://localhost/testdb"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Connection established......"); 
        // 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. সি ভাষায় টোকেন (Tokens) কী?

  2. জাভা ৯-এ মডিউল (Module) এর সুবিধাগুলো কী কী?

  3. জাভা ৯-এ ইন্টারফেসে প্রাইভেট মেথডের সুবিধা

  4. ওয়াই-ফাই AC কী এবং এটি আমাদের কী সুবিধা দেয়?