2016-10-21 7 views
0

Ich habe den folgenden Code:synchrounous Ausführung von Stored Procedure

connection = makeConnection(); 
CallableStatement callableStatement = connection.prepareCall("{call dbo.delete_orders(?) }"); 
callableStatement.setString(1, userName); 
callableStatement.execute(); 
callableStatement.close(); 

Bitte helfen Sie mir zu verstehen, wie ich, dass nach der letzten Zeile der Ausführung gespeicherte Prozedur Ausführung beendet werden garantieren kann oder es wird asynchron ausgeführt.

+0

Bitte zeigen Sie den Code dieser gespeicherten Prozedur. Das genaue Verhalten hängt möglicherweise von der gespeicherten Prozedur ab. Wenn diese gespeicherte Prozedur beispielsweise zuerst eine Tabelle auswählt (diese Tabelle zurückgibt) und dann löscht, wird diese Löschoperation möglicherweise nicht ausgeführt, es sei denn, die Zeilen werden tatsächlich gelesen (ich bin nicht sicher, ob dies für SQL Server oder nicht). –

Antwort

1

JDBC unterstützt keine asynchronen Ausführungen.

Aber andererseits JDBC auch nicht angibt, dass Aufruf (einige seiner Methoden wie execute()) blockiert. Das bedeutet, dass Sie (erste) Ergebnisse von der Datenbank erhalten können, während die Abfrage noch im Hintergrund ausgeführt wird.

Aber das hängt von der Implementierung der JDBC Treiber und der Datenbank selbst ab.

0

JDBC unterstützt keine asynchronen Ausführungen. Wenn das reine JDBC ist, sollte es synchron laufen.