Java Technologies Batch Processing Example: একাধিক SQL Statement একত্রে Execute করা গাইড ও নোট

379

ব্যাচ প্রসেসিং (Batch Processing) হলো একাধিক SQL স্টেটমেন্ট একসাথে এক্সিকিউট করার একটি কৌশল। এটি ডেটাবেসে বড় পরিমাণ ডেটা আপডেট বা ইনসার্ট করার সময় ব্যবহৃত হয়, যেখানে একাধিক SQL স্টেটমেন্ট একসাথে এক্সিকিউট করে প্রক্রিয়াটিকে দ্রুত করা যায়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে Java ব্যবহার করে একাধিক SQL স্টেটমেন্ট একত্রে এক্সিকিউট করা হয়েছে:

Batch Processing Example in Java

১. ব্যাচ প্রসেসিং প্রোগ্রাম:

এখানে একটি উদাহরণ দেয়া হচ্ছে যেখানে জাভা JDBC ব্যবহার করে MySQL ডেটাবেসে একাধিক SQL স্টেটমেন্ট একসাথে এক্সিকিউট করা হচ্ছে।

import java.sql.*;

public class BatchProcessingExample {
    public static void main(String[] args) {
        // ডেটাবেস সংযোগের জন্য ভেরিয়েবল
        Connection conn = null;
        Statement stmt = null;
        
        try {
            // ডেটাবেস ড্রাইভার লোড
            Class.forName("com.mysql.cj.jdbc.Driver");

            // ডেটাবেস সংযোগ
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testdb", "root", "password");

            // অটোমেটিক কমিট বন্ধ করা
            conn.setAutoCommit(false);

            // স্টেটমেন্ট অবজেক্ট তৈরি
            stmt = conn.createStatement();

            // ব্যাচের মধ্যে SQL স্টেটমেন্ট যোগ করা
            stmt.addBatch("INSERT INTO employees (id, name, age) VALUES (1, 'John Doe', 30)");
            stmt.addBatch("INSERT INTO employees (id, name, age) VALUES (2, 'Jane Smith', 25)");
            stmt.addBatch("UPDATE employees SET age = 35 WHERE id = 1");
            stmt.addBatch("DELETE FROM employees WHERE id = 2");

            // ব্যাচ এক্সিকিউট করা
            int[] updateCounts = stmt.executeBatch();
            
            // পরিবর্তনগুলি ডেটাবেসে কমিট করা
            conn.commit();

            // ব্যাচ এক্সিকিউশনের ফলাফল দেখানো
            for (int i : updateCounts) {
                System.out.println("Affected rows: " + i);
            }

            System.out.println("ব্যাচ প্রসেসিং সফলভাবে সম্পন্ন হয়েছে।");

        } catch (SQLException se) {
            // SQL এক্সপেকশন হ্যান্ডলিং
            if (conn != null) {
                try {
                    System.out.println("ট্রানজেকশন ব্যর্থ, রোলব্যাক হচ্ছে...");
                    conn.rollback();
                } catch (SQLException re) {
                    re.printStackTrace();
                }
            }
            se.printStackTrace();
        } catch (Exception e) {
            // সাধারণ এক্সপেকশন হ্যান্ডলিং
            e.printStackTrace();
        } finally {
            try {
                // রিসোর্স বন্ধ করা
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException se) {
                se.printStackTrace();
            }
        }
    }
}

ব্যাচ প্রসেসিং কীভাবে কাজ করে:

  1. ডেটাবেস সংযোগ: প্রথমে ডেটাবেসের সাথে সংযোগ করা হয় DriverManager.getConnection() ব্যবহার করে।
  2. অটোমেটিক কমিট বন্ধ করা: conn.setAutoCommit(false) ব্যবহার করে, অটোমেটিক কমিট বন্ধ করা হয়। অর্থাৎ, SQL স্টেটমেন্টগুলো একসাথে execute হবে এবং পরে আমরা commit() কল করে সেগুলো ডেটাবেসে প্রলম্বিতভাবে সংরক্ষণ করব।
  3. ব্যাচে SQL স্টেটমেন্ট যোগ করা: stmt.addBatch() ব্যবহার করে SQL স্টেটমেন্টগুলো ব্যাচে যোগ করা হয়।
  4. ব্যাচ execute করা: stmt.executeBatch() কল করে ব্যাচ প্রসেসিং কার্যকর করা হয়।
  5. কমিট করা: সমস্ত স্টেটমেন্ট সফলভাবে execute হলে conn.commit() ব্যবহার করে ডেটাবেসে পরিবর্তনগুলি সংরক্ষণ করা হয়।
  6. রোলব্যাক: যদি কোনো ত্রুটি ঘটে, তবে conn.rollback() ব্যবহার করে সমস্ত পরিবর্তন বাতিল করা হয়।

ব্যাচ প্রসেসিং এর সুবিধা:

  1. পারফরম্যান্স বৃদ্ধি: একাধিক SQL স্টেটমেন্ট একসাথে execute করা, একাধিক রাউন্ড-ট্রিপের পরিবর্তে, পারফরম্যান্সে উন্নতি আনে।
  2. ট্রানজেকশন কন্ট্রোল: সমস্ত SQL স্টেটমেন্ট একসাথে একটি ট্রানজেকশনের মধ্যে execute হয়, যা এককভাবে commit বা rollback করা যায়।

ব্যাচ প্রসেসিং এর ব্যবহার:

  • ডেটা ইনসার্ট / আপডেট: যখন অনেক রেকর্ড একসাথে ডেটাবেসে ইনসার্ট বা আপডেট করতে হয়।
  • লজিক্যাল অপারেশন: একাধিক SQL অপারেশন একসাথে সম্পন্ন করার জন্য।

এভাবে আপনি Java JDBC ব্যবহার করে একাধিক SQL স্টেটমেন্ট ব্যাচে execute করতে পারেন এবং আপনার ডেটাবেস অপারেশনগুলোকে আরও দক্ষ ও দ্রুততর করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...