Statement Multithread fähig?

Empire Phoenix

Top Contributor
Hi, meine Frage ist eigentlich wohl relativ dumm(/dumm gedacht) weshalb ich wohl auch nichts dazu finde mit Google.

Wenn ich eine SQL verbindung aufbaue
connection = DriverManager.getConnection(url,username,pw);

brauche ich ja immer ein Statement
connection.createStatement()

mit dem ich dann die Querys durchführen kann:
.executeQuery(query)
bzw.
.executeUpdate(query)

Nun ist meine Frage
a) Wozu braucht man ein Statement? Alle anderen Sql verbindungen die ich in anderen Sprachen(zb php) kenne benutzen das nicht
b)Wieso muss ich 2 verschiedene Methoden je nach art der Querys nehmen?
c) Wenn ich ein Statement habe, kann ich dann mit mehreren Threads parrallel damit arbeiten, oder muss ich mehrere Statements und oder mehrere Connections haben?
 
G

Gast2

Gast
a) Wozu braucht man ein Statement? Alle anderen Sql verbindungen die ich in anderen Sprachen(zb php) kenne benutzen das nicht
In PHP gibts auch Statements, z.b. das PDOStatement.

b)Wieso muss ich 2 verschiedene Methoden je nach art der Querys nehmen?
Bei nem Select bekommst du ein ResultSet zurück, bei einem update in der Regel nur ein int dass dir die anzahl der veränderten Zeilen zurückgibt.

c) Wenn ich ein Statement habe, kann ich dann mit mehreren Threads parrallel damit arbeiten, oder muss ich mehrere Statements und oder mehrere Connections haben?
Falls das nen etwas größeres Projekt wird solltest du dir mal nen ConnectionPool anschauen. Falls dann irgendwo eine Connection benötigt wird kannst du dir eine aus dem Pool holen, darauf erstellst du dann das Statement auf dem du dann dein query ausführst.
Auf einem statement solltest du nie mehrere queries gleichzeitig ausführen.
 

Empire Phoenix

Top Contributor
Danke ,
habe mich noch etwas weiter eingelesen, also fals wer ähnliche fragen dazu hat und dies hier ließt
Statement ResultSet werden ungültig sowie man einen neuen Query über das zugehörige Statement startet.
Also connection Pool benutze ich jetzt C3P0 welches (zumindest angeblich, weiß nicht wie ich das testen kann) sich auch um das cachen von PreparedStatements kümmert.
 

Ähnliche Java Themen

Neue Themen


Oben