Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SQL-Code in Java verpacken

Empfohlene Antworten

Hallo zusammen,

ich möchte in Java eine SQL-Abfrage durchführen lassen und die Ergebnisse dynamisch in eine durch Java zu erstellende HTML-Seite schreiben lassen.

Soweit so gut. Es klappt auch alles.

Ich frage mich lediglich, ob es sinnvoll ist, den SQL-Code hart im Quelltext zu verewigen oder sollte man nicht besser den SQL-Code in ein properties auslagern?

Es ist allerdings so, dass sich dieser SQL-Code *nie* wieder ändern wird ;)

also ich hab meine sql statements im code drin. jedoch kann man sicherlich properties oder sowas anlegen ...

Am sinnvollsten pack ich doch die Statements dann mit StringBuffer.append() zu einem StringBuffer hinzu, weise diesen einem PreparedStatement zu und führe dieses anschließende mit executeQuery() aus, oder geht das noch performanter?

Hab da nämlich eine *mega* Abfrage hinterhängen ;)

Am sinnvollsten pack ich doch die Statements dann mit StringBuffer.append() zu einem StringBuffer hinzu, weise diesen einem PreparedStatement zu und führe dieses anschließende mit executeQuery() aus, oder geht das noch performanter?
Also ein PreparedStatement brauchst du ja eigentlich nur dann, wenn du Objekte, oder andere Werte hast, die du je nach genauer Query einsetzen willst. Wenn dein SQL String wirklich von Anfang an _komplett_ feststeht, dann würde ich immer ein "normales" Statement nehmen und den Code fest reinhacken. Wenn du doch irgendwann merkst, dass du doch das ein oder andere Mal eine andere Version nehmen musst dann kann man immer noch auf Properties umsteigen.

Ciao

Christian

Wenn dein SQL String wirklich von Anfang an _komplett_ feststeht, dann würde ich immer ein "normales" Statement nehmen und den Code fest reinhacken

Meist (nicht immer!) sind PreparedStatements aber schneller, da das Statement intern gecachet wird und nicht neu geparst werden muss, was beim "normalen" Statement immer der Fall ist. Daher benutze ich immer PreparedStatements, mit Ausnahme von Batch-Updates, die Oracle leider nur für normale Statements unterstützt :-(

Nun gut, dann weiss ich wenigstens, dass ich einen sinnvollen Weg gehe.

Es ist zwar etwas langsam, bis endlich der gesamte Report auf der HTML-Seite erscheint, aber das kann mitunter auch daran liegen, dass der ja erst die ganze Abfrage macht und dann die komplette Tabelle schreibt...

Vielleicht sollte ich dem das Layout der Tabelle vorher bekannt machen, aber das ist ja eine HTML-Sache und gehört hier nicht her.

PreparedStatements muss ich allerdings benutzen, da ich noch einige "?" innerhalb der SQL-Statements habe, die mit dem auf der Auswahlseite gewählten Datum gefüllt werden sollen und daher erst zur Laufzeit feststehen.

Aber wenn PreparedStatements eh gut und schnell sind, bin ich ja zufrieden ;)

Danke

  • 2 Wochen später...

Je nachdem, wie komplex die Statements sind (vielleicht werden verschiedene Abfragen gemacht, um ein Ergebnis zu erreichen) ist es sinnvoll die Statements als Stored Procedures in der Datenbank abzulegen und dann diese Procedure aufzurufen.

ich wuerde eigentlich niemals ein normales sql statement in einer stored procedure ablegen. eher wohl in einem view.

oder gibt es vorteile bei einer stored procedure?

btw. ich hab ein tut 'Improving JDBC performance' von oracle.

falls jemand interesse hat, einfach ne pm schreiben.

so long

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.