2016-06-30 14 views
0

zu verwenden Ich habe eine Klasse ConnectionManager mit Methode getConnection erstellt. Diese getConnection Methode erstellt bei jedem Aufruf eine neue DB-Verbindung zum selben DB. Es verwendet DriverManager.getConnection(). Jetzt habe ich zwei verschiedene Verbindungsobjekte mit ConnectionManager erstellt.Versuchen, zwei Verbindungsobjekte in JDBC

conn1 = ConnectionManager.getConnection() 
conn2 = ConnectionManager.getConnection() 

jetzt, wenn ich dies tun

conn2.setAutoCommit(false); 
conn1.prepareStatment(somequery); 
// ....Excute a set of prepared statments using conn1 
conn2.commit(); // or conn2.rollback() 

wird mit zwei verschiedenen Verbindungsobjekt, eine für das Transaktionsmanagement und andere für die Anweisungsausführung gültig? Wenn ja, funktioniert die Transaktion genauso wie für ein einzelnes Objekt?

Auch ich bin mit OracleDB

+0

was meinen Sie damit - ** Ist das gültig? ** Bitte klären Sie Ihre Anfrage. –

Antwort

1

Verwendet zwei verschiedene Verbindungsobjekte, eines für Transaktion Management und andere für die Ausführung von Anweisungen gültig? Wenn ja, funktioniert die Transaktion genauso wie für ein einzelnes Objekt?

Nein, es ist nicht gültig. Die Transaktion funktioniert nicht auf die gleiche Weise wie für ein einzelnes Objekt.

Beide sind zwei verschiedene Connections, für eine Connection vorgenommenen Einstellungen werden die Einstellungen nicht für andere Connection beeinflussen - Diese beiden sind einfach zwei unabhängige Connection Objekte auf derselben Datenbank zeigt.

0

conn1 und conn2 sind zwei verschiedene Verbindungen mit zwei verschiedenen Transaktionen, dann gilt:

für conn2:

nichts ändert, weil die eindeutige Befehl Sie ein commit ist senden aber nichts ist in Ihren Daten geändert

für conn1:

Wenn conn1autocommit =true hat, werden alle Befehle sent von dmbs committed, sonst passiert nichts, weil niemand Ihre Änderungen festschreibt.

+0

Könntest du etwas ausgeklügelter sein? Und geben Sie mir bitte das endgültige Urteil, ob dies mit einem einzelnen Verbindungsobjekt wie vorgesehen funktioniert. –