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

JDBC-তে Savepoint কী? ব্যাখ্যা করুন।


Savepoint ইন্টারফেস আপনাকে অতিরিক্ত ট্রানজ্যাকশনাল কন্ট্রোল দেয়। অধিকাংশ আধুনিক DBMS (যেমন Oracle-এর PL/SQL) তাদের পরিবেশে সেভপয়েন্ট সাপোর্ট করে।

যখন আপনি একটি সেভপয়েন্ট সেট করেন, আপনি একটি ট্রানজ্যাকশনের ভিতরে একটি লজিক্যাল রোলব্যাক পয়েন্ট সংজ্ঞায়িত করেন। যদি একটি সেভপয়েন্টের পরে কোনো এরর হয়, তবে রোলব্যাক মেথড ব্যবহার করে সকল পরিবর্তন বা শুধু সেভপয়েন্টের পরে হওয়া পরিবর্তনগুলো উল্টে ফেরানো যায়।

Connection অবজেক্টের সেভপয়েন্ট ম্যানেজ করার জন্য দুটি নতুন মেথড আছে:

  • setSavepoint(String savepointName): একটি নতুন সেভপয়েন্ট সংজ্ঞায়িত করে। এটি একটি Savepoint অবজেক্ট রিটার্ন করে।

  • releaseSavepoint(Savepoint savepointName): একটি Savepoint ডিলিট করে। এটি প্যারামিটার হিসেবে একটি Savepoint অবজেক্ট গ্রহণ করে। এই অবজেক্ট সাধারণত setSavepoint() মেথড দ্বারা জেনারেট করা একটি সেভপয়েন্ট।

একটি rollback(String savepointName) মেথড আছে, যা নির্দিষ্ট সেভপয়েন্ট পর্যন্ত কাজ রোলব্যাক করে।

উদাহরণ

try { 
    // ধরি একটি বৈধ কানেকশন অবজেক্ট conn 
    conn.setAutoCommit(false); 
    Statement stmt = conn.createStatement(); 
    // একটি Savepoint সেট 
    Savepoint savepoint1 = conn.setSavepoint("Savepoint1"); 
    String SQL = "INSERT INTO Employees " + "VALUES (106, 20, 'Rita', 'Tez')"; 
    stmt.executeUpdate(SQL); 
    // একটি ভুল SQL স্টেটমেন্ট সাবমিট 
    String SQL = "INSERTED IN Employees " + "VALUES (107, 22, 'Sita', 'Tez')"; 
    stmt.executeUpdate(SQL); 
    // যদি কোনো এরর না হয়, পরিবর্তন কমিট 
    conn.commit(); 
} catch (SQLException se) { 
    // যদি কোনো এরর হয় 
    conn.rollback(savepoint1); 
}

  1. সি প্রোগ্রামে ক্যারেক্টার অ্যানালাইসিস ফাংশন ব্যাখ্যা

  2. C#-এ রিফ্লেকশন (Reflection) কী এবং ব্যবহার

  3. C#-এ ইনডেক্সার কী?

  4. C#-এ নেমস্পেস (Namespaces) কী?