Transactions और batch processing

Java में PostgreSQL डेटाबेस को क्वेरी करना

Miller Trujillo

Staff Software Engineer

समस्या क्या है?

  • Transaction: डेटाबेस ऑपरेशंस के लिए सेफ़्टी नेट
  • सभी ऑपरेशंस साथ में succeed या fail होते हैं

$$

$$

बैंक ट्रांसफ़र ट्रांज़ैक्शन उदाहरण

Java में PostgreSQL डेटाबेस को क्वेरी करना

ACID गुण

  • Atomicity: या तो ऑपरेशंस पूरे हों या कोई नहीं
  • Consistency: डेटाबेस वैध बना रहे
  • Isolation: ऑपरेशंस एक-दूसरे में दखल न दें
  • Durability: पूरी हुई transactions स्थायी रहें

ACID गुण

  • डिफ़ॉल्ट रूप से, JDBC auto-commit मोड में चलता है 🔄
Java में PostgreSQL डेटाबेस को क्वेरी करना

JDBC में transaction नियंत्रण

Connection conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD)
conn.setAutoCommit(false);

try (...) { // Execute your SQL statements here
conn.commit();
} catch (SQLException e) { conn.rollback(); }
Java में PostgreSQL डेटाबेस को क्वेरी करना

बैंक ट्रांसफ़र उदाहरण

// Reduce the sender's balance
String withdrawSQL = "UPDATE accounts SET balance = balance - ?
  WHERE account_id = ? AND balance >= ?";

// Increase the recipient's balance String depositSQL = "UPDATE accounts SET balance = balance + ? WHERE account_id = ?";

$$

  • UPDATE - टेबल की मौजूदा rows को बदलता है
  • SET - किन कॉलम्स में बदलाव करना है बताता है
Java में PostgreSQL डेटाबेस को क्वेरी करना

बैंक ट्रांसफ़र उदाहरण

try (Connection conn = DriverManager.getConnection(DB_URL, USERNAME, PASSWORD)) {

conn.setAutoCommit(false);
try { try (PreparedStatement withdrawStmt = conn.prepareStatement(withdrawSQL); PreparedStatement depositStmt = conn.prepareStatement(depositSQL)) { // Set parameters and execute both statements... }
conn.commit();
} catch (SQLException e) { conn.rollback(); } }
Java में PostgreSQL डेटाबेस को क्वेरी करना

Batch processing

  • कई ऑपरेशंस को एक साथ समूहित करता है

$$

Screenshot 2025-12-03 at 10.40.25.png

Java में PostgreSQL डेटाबेस को क्वेरी करना

Batch processing उदाहरण

PreparedStatement pstmt = conn.prepareStatement("INSERT INTO transfers
   (sender_id, recipient_id, amount) VALUES (?, ?, ?)")

for (Object[] transfer : transfers) { pstmt.setInt(1, (Integer) transfer[0]); pstmt.setInt(2, (Integer) transfer[1]); pstmt.setInt(3, (Integer) transfer[2]);
pstmt.addBatch(); // Queue for later }
int[] results = pstmt.executeBatch(); // Send all at once
Java में PostgreSQL डेटाबेस को क्वेरी करना

अभ्यास करते हैं!

Java में PostgreSQL डेटाबेस को क्वेरी करना

Preparing Video For Download...