# PreparedStatement im Servlet - Referenz speichern



## Anon (22. Mai 2007)

Hallo,

ich hab ein Servlet wo auf eine Anfrage hin abfragen und eintragungen in eine DB mit einem PreparedStatement passieren. Nun erzeuge ich bei jedem Aufruf in der Methode ein neues PreparedStatement Objekt.

Soweit ich weiss kann die DB die Anfrage von einem PreparedStatement aber nur optimieren wenn man immer wieder die selbe Instanz benutzt.

Stimmt das?

Und wenn ja: Wo kann ich denn meine Referenz abspeichern im Servlet? in einer Membervariable wird sie ja nur so lange bleiben wie die Servletinstanz und die wird doch irgendwann vom Applikationserver entsorgt wenn keine Anfragen mehr kommen.

Gibts dafür ne Lösungsstrategie?

Gruss Anon


----------



## Guest (22. Mai 2007)

Anon hat gesagt.:
			
		

> Soweit ich weiss kann die DB die Anfrage von einem PreparedStatement aber nur optimieren wenn man immer wieder die selbe Instanz benutzt.
> 
> Stimmt das?


Ja.



			
				Anon hat gesagt.:
			
		

> Und wenn ja: Wo kann ich denn meine Referenz abspeichern im Servlet? in einer Membervariable wird sie ja nur so lange bleiben wie die Servletinstanz und die wird doch irgendwann vom Applikationserver entsorgt wenn keine Anfragen mehr kommen.


Dies impliziert, dass auch die dazugehörige Connection offen bleibt. Da es aber viele Sessions geben kann, kommst 
du da schnell an die Grenzen der Datenbank.


```
Gibts dafür ne Lösungsstrategie?
```
JPA mit Caching.

Anders gefragt. Besteht wirklich Bedarf für eine Optimierung? Du weisst ja "If it ain't broke, don't fix it".  :wink:


----------



## Anon (23. Mai 2007)

hmm nee nicht wirklich 

dachte nur wenn ich schon nen PreparedStatement nutze könnt ich das ja auch mal optimieren lassen 

aber JPA ist wohl nen bissle overkill


----------



## Guest (23. Mai 2007)

Übrigens, ein Application Server wie z.B. BEA Weblogic hat speziell hierzu einen Statement Cache
und einen Connection Pool. Da wird optimiert, was das Zeug hält.


----------

