Stored Procedures তৈরি এবং ব্যবহারের উদাহরণ

Database Tutorials - অ্যাপাচি ডার্বি (Apache Derby) Derby Stored Procedures এবং Triggers |
227
227

Stored Procedures হল SQL কোডের একটি সেট, যা ডেটাবেসে সংরক্ষিত থাকে এবং ডেটাবেসের মাধ্যমে কল করা যায়। এটি সাধারণত কোনো নির্দিষ্ট কাজ বা কর্মসূচি সম্পাদন করার জন্য ব্যবহৃত হয়, যেমন ডেটা ইনসার্ট, আপডেট, অথবা আরও জটিল লগিকাল অপারেশন।

Apache Derby-এ stored procedure তৈরি এবং ব্যবহার করা সম্ভব, যদিও এটি অন্যান্য ডেটাবেসের তুলনায় কিছুটা সীমিত। তবে আপনি SQL ব্লক এবং Java প্রোগ্রামিং ভাষা ব্যবহার করে stored procedures তৈরি করতে পারেন।


Stored Procedure তৈরি করা

Apache Derby-এ Stored Procedure তৈরি করতে Java ব্যবহার করতে হয়, কারণ Derby SQL-এ শুধুমাত্র Java-based stored procedures সমর্থন করে। Java-based stored procedure একটি Java ক্লাস বা মেথড যা SQL কোয়েরি চালানোর মাধ্যমে ডেটাবেসে কার্যকর হয়।

Stored Procedure তৈরি করার উদাহরণ:

ধরা যাক, আপনি একটি Stored Procedure তৈরি করতে চান যা একটি employee টেবিলের মধ্যে id এর ভিত্তিতে age আপডেট করবে।

  1. Java ক্লাস তৈরি করা:

প্রথমে একটি Java ক্লাস তৈরি করুন যা stored procedure হিসেবে কাজ করবে। উদাহরণস্বরূপ, নিচের Java কোডে একটি মেথড তৈরি করা হয়েছে যা employee টেবিলের age আপডেট করবে।

import java.sql.*;

public class UpdateEmployeeAge {
    public static void updateAge(Connection conn, int employeeId, int newAge) throws SQLException {
        String sql = "UPDATE employee SET age = ? WHERE id = ?";
        
        try (PreparedStatement stmt = conn.prepareStatement(sql)) {
            stmt.setInt(1, newAge);
            stmt.setInt(2, employeeId);
            stmt.executeUpdate();
        }
    }
}
  1. Stored Procedure তৈরি করা:

এখন, আপনি Derby ডেটাবেসে UpdateEmployeeAge ক্লাসের stored procedure তৈরি করতে পারেন। এটা করার জন্য আপনি java.sql.Connection এবং CallableStatement ব্যবহার করবেন।

-- Stored procedure তৈরি করা
CREATE PROCEDURE updateEmployeeAge(IN employeeId INT, IN newAge INT)
    LANGUAGE JAVA
    PARAMETER STYLE JAVA
    DYNAMIC RESULT SETS 0
    EXTERNAL NAME 'UpdateEmployeeAge.updateAge';

এটি updateEmployeeAge নামে একটি stored procedure তৈরি করবে, যা employeeId এবং newAge ইনপুট নেয় এবং employee টেবিলের age আপডেট করে।


Stored Procedure কল করা

Stored Procedure কল করতে CALL কমান্ড ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে আমরা updateEmployeeAge স্টোরড প্রসিডিউর কল করছি:

-- Stored Procedure কল করা
CALL updateEmployeeAge(1, 35);

এই কমান্ডটি employee টেবিলের id = 1 এর age কলাম 35-এ আপডেট করবে।


Stored Procedure Java কোড দিয়ে কল করা

এখন, আপনি JDBC ব্যবহার করে Java থেকে stored procedure কল করতে পারেন।

import java.sql.*;

public class CallStoredProcedure {
    public static void main(String[] args) {
        String url = "jdbc:derby:myDB;create=true"; // ডেটাবেসের URL
        try (Connection conn = DriverManager.getConnection(url)) {
            // CallableStatement তৈরি করা
            String sql = "{call updateEmployeeAge(?, ?)}";
            try (CallableStatement stmt = conn.prepareCall(sql)) {
                // ইনপুট প্যারামিটার সেট করা
                stmt.setInt(1, 1);  // employeeId
                stmt.setInt(2, 35); // newAge

                // Stored Procedure কল করা
                stmt.executeUpdate();
                System.out.println("Employee age updated successfully.");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

এই Java কোডটি JDBC ব্যবহার করে stored procedure কল করবে, এবং employeeId = 1 এর age 35-এ আপডেট করবে।


Stored Procedure থেকে আউটপুট ফেরত দেওয়া

আপনি stored procedure-এর মাধ্যমে আউটপুটও ফেরত দিতে পারেন। যেমন, কোনো নির্দিষ্ট id এর জন্য age ফিরিয়ে দেওয়ার জন্য আপনি নিচের মতো একটি stored procedure তৈরি করতে পারেন:

  1. Java কোড:
public class GetEmployeeAge {
    public static int getAge(Connection conn, int employeeId) throws SQLException {
        String sql = "SELECT age FROM employee WHERE id = ?";
        
        try (PreparedStatement stmt = conn.prepareStatement(sql)) {
            stmt.setInt(1, employeeId);
            ResultSet rs = stmt.executeQuery();
            
            if (rs.next()) {
                return rs.getInt("age");
            } else {
                return -1;  // If no employee found
            }
        }
    }
}
  1. Stored Procedure তৈরি করা:
CREATE PROCEDURE getEmployeeAge(IN employeeId INT, OUT employeeAge INT)
    LANGUAGE JAVA
    PARAMETER STYLE JAVA
    DYNAMIC RESULT SETS 0
    EXTERNAL NAME 'GetEmployeeAge.getAge';
  1. Stored Procedure কল করা:
-- Stored Procedure কল করা এবং আউটপুট নেয়া
CALL getEmployeeAge(1, ?);

সারাংশ

  • Stored Procedures ডেটাবেসে একাধিক SQL অপারেশন একত্রে সম্পাদন করার জন্য ব্যবহৃত হয়।
  • Apache Derby Java-based stored procedures সমর্থন করে, যেখানে আপনি Java ক্লাসে কোড লিখে stored procedure তৈরি করতে পারেন।
  • CALL কমান্ড ব্যবহার করে stored procedure কল করা হয়।
  • Java JDBC ব্যবহার করে stored procedure কল করা যেতে পারে এবং আউটপুট ফেরত নেওয়া সম্ভব।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion