Kurs:Wirtschaftsinformatik SS09 Datenbankmanagementsysteme/Teil 2/JDBC8

Aus Wikiversity

Aufgabe 5: JDBC

2) a) Aus welchem Grund werden Transaktionen verwendet? Was passiert, wenn die Transaktionen in JDBC nicht explizit gestartet und beendet werden? (4P)

public class Beispiel{ 
public static void main(String[] args) throws  
       SQLException,ClassNotFoundException 
{ 
  Connection con=null; 
  Statement stmt=null; 

  Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); 
  String url="jdbc:db2:EDBMSVL"; 
  con=DriverManager.getConnection(url,"User","Password"); 
  stmt=con.createStatement(); 

  try { 


/* Begin of Transaction (BOT) */ 



  con.setAutoCommit(false); Teillösung, (2P) 

  /* Die folgenden zwei Anweisungen sollen innerhalb einer  
  Transaktion ausgeführt werden. */ 
  stmt.executeUpdate("INSERT INTO Tab1 VALUES (1,’Bsp1’)"); 
  stmt.executeUpdate("INSERT INTO Tab2 VALUES (5,’Bsp2’)"); 
   

/* End of Transaction (EOT) */ 




con.commit(); Teillösung (1P) 
  con.setAutoCommit(true); Teillösung, optional 
  }  
  catch (SQLException se) { 


/* Failure of Transaction (FOT) */ 



  con.rollback(); Teillösung (1P) 

  System.out.println("Ein Fehler ist aufgetreten!"); 
  } 

  stmt.close(); 
  con.close(); 

}