# Java SQL Connection mit Rollback



## firestone (4. Feb 2009)

Hallo Leute 

ich habe ein Verständnisproblem  ich habe folgenden Quelltext geschrieben 



```
Connection conn = PersistenceUtil.get().connection();
	try{
	    conn.setAutoCommit(false);
	    Statement stmt=conn.createStatement();
	    String query = "UPDATE 1";
                    stmt.executeUpdate(query);

                    String query1 = "UPDATE 2";
                    stmt.executeUpdate(query1);

                    String query2 = "UPDATE 3";
                    stmt.executeUpdate(query2);

                    conn.commit();
	}catch (SQLException e){
		try {
	                        conn.rollback() ;
                                        conn.setAutoCommit(true);
		} catch (SQLException e1) {
		        e1.printStackTrace();
		}
	    e.getMessage();
	}
```

So folgendes soll dieser Quelltext tun . 
Ich baue eine Verbindung auf und führe hintereinander 3 UPDATES auf der Datenbank durch . Anschließend bestätige ich meine UPDATES mit conn.commit() falls es dabei zu einem Fehler kommt (bei einem der 3 UPDATES) soll alles wieder rückgängig gemacht werden und anschließend die Verbindung geschlossen werden und das AutoCommit soll wieder auf (true) gesetzt werden . 

Meine frage ist das so richtig programmiert ??? 

Vielen dank für eure Hilfe 

Lg Fireli


----------



## ARadauer (4. Feb 2009)

das conn.setAutoCommit(true);  vielleicht in einen finaly block zum äusseren try catch dazu... aber sonst, müsste das passen...

muss aber nicht unbedingt sein, dass es funktioniert, nicht jede db untestützt tansaktionen...


----------



## firestone (4. Feb 2009)

supi danke hat geklappt


----------

