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

JDBC-তে setAutoCommit() মেথডের ব্যবহার কী?


ডেটাবেস কমিট করলে সেটা সেই বিন্দু পর্যন্ত করা সকল পরিবর্তন সংরক্ষণ করে। ডেটাবেস কমিট করতে commit() মেথড ব্যবহার করা হয়। কোনো সমস্যা হলে rollback() মেথড দিয়ে ডেটাবেসকে সেই বিন্দুতে ফেরানো যায়। ডিফল্টভাবে কিছু ডেটাবেস অটোমেটিক কমিট করে। কিন্তু ট্রানজ্যাকশন ম্যানেজ করার সময় ম্যানুয়ালি কমিট করতে হয়।

এই পরিস্থিতিতে setAutoCommit() মেথড ব্যবহার করা হয়। এই মেথড Connection ইন্টারফেসের অন্তর্গত এবং এটি একটি বুলিয়ান মান গ্রহণ করে।

যদি true পাস করা হয় তবে ডেটাবেসের অটো-কমিট ফিচার অন হয়, এবং false পাস করলে অফ হয়।

অটো কমিট অফ করতে:

con.setAutoCommit(false);

উদাহরণ

নিচের প্রোগ্রাম ব্যাচ প্রসেসিং ব্যবহার করে ডেটা ইনসার্ট করে। এখানে অটো কমিট false সেট করা হয়েছে, স্টেটমেন্টগুলো ব্যাচে যোগ করা হয়েছে, ব্যাচ এক্সিকিউট করা হয়েছে এবং তারপর ম্যানুয়ালি কমিট করা হয়েছে।

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 

public class BatchProcessing_Statement { 
    public static void main(String args[]) throws Exception { 
        // কানেকশন 
        String mysqlUrl = "jdbc:mysql://localhost/sampleDB"; 
        Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); 
        System.out.println("Connection established......"); 
        // CREATE TABLE Dispatches( Product_Name VARCHAR(255), Name_Of_Customer VARCHAR(255), Month_Of_Dispatch VARCHAR(255), Price INT, Location VARCHAR(255)); 
        // Statement অবজেক্ট 
        Statement stmt = con.createStatement(); 
        // অটো-কমিট false 
        con.setAutoCommit(false); 
        // ইনসার্ট স্টেটমেন্ট 
        String insert1 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " 
            + "Month_Of_Dispatch , Price, Location) VALUES " 
            + "('KeyBoard', 'Amith', 'January', 1000, 'hyderabad')"; 
        String insert2 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " 
            + "Month_Of_Dispatch , Price, Location) VALUES " 
            + "('Earphones', 'SUMITH', 'March', 500, 'Vishakhapatnam')"; 
        String insert3 = "INSERT INTO Dispatches( Product_Name , Name_Of_Customer , " 
            + "Month_Of_Dispatch , Price, Location) VALUES " 
            + "('Mouse', 'Sudha', 'September', 200, 'Vijayawada')"; 
        // স্টেটমেন্টগুলো ব্যাচে যোগ 
        stmt.addBatch(insert1); 
        stmt.addBatch(insert2); 
        stmt.addBatch(insert3); 
        // ব্যাচ এক্সিকিউট 
        stmt.executeBatch(); 
        // পরিবর্তন সংরক্ষণ 
        con.commit(); 
        System.out.println("Records inserted......"); 
    } 
}

আউটপুট

Connection established...... 
Records inserted......

  1. জাভা ৯-এ Optional.stream() মেথডের ব্যবহার

  2. জাভাতে Thread.sleep() মেথডের ব্যবহার

  3. জাভাতে setBounds() মেথডের ব্যবহার কী?

  4. Python MySQL-এ rollback() মেথড কী এবং কীভাবে কাজ করে?