Datenbankanbindung JSP

Br4ve

Bekanntes Mitglied
Hallo,
Ich habe eine Frage zur Datenbankanbindung, bzw. zur Datenbanverbindung. Ich erstelle derzeit eine Webanwendung mit JSP und Servlets. Aktueller Schwachpunkt meiner Webanwendung sind die vielen Verbindungen die ich im Laufe der Runtime öffne und schließe. Wie bekomme ich es am besten hin, so wenig wie möglich, im Idealfall nur eine Verbindung für die Webanwendung bereitzustellen? Ich habe mir dazu bereits Gedanken gemacht und meine erste Idee war es die Connection in der Session zu speichern, aber dann hätte jeder User ja eine eigene Connection und das geht vermutlich nicht lange gut. Meine zweite Idee war der Servletkontext. Muss ich dann zwanbgsläufig einen ServletContextListener, die Datenbanverbindungsklasse, sowie ein Servlet benutzen? ???:L
Oder gibt es da vielleicht besser Methoden ohne jetzt völlig von den JSPs wegzugehn?
 

turtle

Top Contributor
Vorweg:
Ich mag JSPs nicht und zwar genau aus dem Grund, weil es dazu verführt Business-Logik mit in die View einzubauen. Diese Dinge gehören strikt getrennt.

Genauso solltest Du die Verwaltung von DB-Verbindungen nicht selber lösen. Hierfür stellt Dir jeder ordentliche Server (z.B. Tomcat) etwas bereit mit dem Verbindungen "gepooled" werden. Stichwort hierzu ist JNDI und ist, wenn es denn JSP sein muss, kurz hier beschrieben. Natürlich findest Du eine Menge wenn Du danach googlest.
 

Br4ve

Bekanntes Mitglied
Also Connection Pools sagte mir bis eben nichts.
Ich benutze JSPs jetzt nicht weil ich so mega überzeugt von der Technologie bin, allerdings ist das das Einzige was ich berherrsche bisher und ich selber hatte auch auf die Entscheidung leider keinen Einfluss, mit welchen Technologien die Webanwendung erstellt wird. :bahnhof:
Zu der JNDI-Technik habe ich nachdem ich mir den Link kurz angeschaut habe eine Frage, die sich mir sofort gestellt hat... Und zwar wenn ich das richtig verstanden habe, liegen die Datenbankparameter ( url, user, password) in einer XML-Datei auf dem Tomcatserver. Dadurch ist das Ganze ja sehr statisch und wenig skalierbar? Also ich benutze derweil 2 Datenbankverbindungen zu 2 verschiedenen Datenbanken. Ursprünglich wollte ich es prinzipiell auch möglich machen weitere Datenbankenverbindungen problemlos hinzuzufügen. Gehe ich recht in der Annahme, dass das mit JNDI nicht ohne Weiteres möglich ist?
 

turtle

Top Contributor
2 Datenbanken = 2 JNDI-Einträge
Skaliert sehr schön.

>>Zur Laufzeit eine weitere DB hinzufügen?

In der Tat geht das nicht ohne Weiteres.
Müsste mit einem bind auf dem InitialContext gemacht werden. Ob's geht weiss ich aber nicht.

Connection Pool sind sehr wichtig und hier mehr Infos dazu.
 

Br4ve

Bekanntes Mitglied
Ok ich probiere das mal aus. Wo genau füge ich denn in der server.xml von tomcat den context ein? Das ist in den Tutorials ein bißchen schwammig formuliert. Oder liegt es vll daran, dass Tomcat 6 und Tomcat 7 inzwischen context.xml files besitzen in denen man das einfügt? ???:L
 

turtle

Top Contributor
Das kannst Du halten wie die Dachdecker ;-)

Übersichtlicher finde ich, wenn es in einer webapplikations-eigenen Datei steht. Diese muss in CATALINA_HOME/webapps/<Webapplikation>/META-INF/context.xml stehen.

Eine Context-Definition kann aber auch in server.xml stehen. Da muss es innerhalb des Host-Elementes stehen. Ich trage die einzelnen Definition ans Ende vor dem abschliessenden Tag </host> ein. Genaue Definition in der Doku.
 

Br4ve

Bekanntes Mitglied
Eine Frage habe ich dann doch noch, weil ich derzeit immer eine javax.naming.NameNotFoundException bekomme. In dem ersten Link steht auch nichts von web.xml anpassen oder ähnliches. In anderen Tutorials jedoch schon. Es scheint ja aber zwingend notwendig zu sein, weil die Exception für mich stark darauf hindeutet, dass er den Kontext nicht mit dem Code in Verbindung bringen kann.... Wie und wo muss ich also genau noch was ändern damit es funktioniert? Mit der web.xml hat es iwie bei mir nicht richtig geklappt...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
A Bestmögliche Entkopplung der Datenbankanbindung Datenbankprogrammierung 6
J Derby/JavaDB Datenbankanbindung Eclipse und Derby Datenbankprogrammierung 7
M Java Datenbankanbindung funktioniert nicht Datenbankprogrammierung 4
T MySQL Problem mit Datenbankanbindung Datenbankprogrammierung 4
Z PostgreSQL Java Servlets mit Datenbankanbindung Datenbankprogrammierung 3
B MySQL Problem mit Datenbankanbindung an MySQL Datenbankprogrammierung 2
R MySQL Voraussetzungen für eine erfolgreiche Datenbankanbindung mittels JDBC Datenbankprogrammierung 2
C Datenbankanbindung mit einem JButton Datenbankprogrammierung 12
M Servlet in JSP anbinden // Datenbankanbindung in JSP Datenbankprogrammierung 8
S MySQL Datenbankanbindung extra Klasse Datenbankprogrammierung 10
C Pokergame + Datenbankanbindung (Wahrscheinlichkeiten) Datenbankprogrammierung 16
G Probleme mit Datenbankanbindung Datenbankprogrammierung 3
A Datenbankanbindung an mySQL und Ein-/Auslesen der Daten Datenbankprogrammierung 4
A Datenbankanbindung, Grundlagen Datenbankprogrammierung 2
D Datenbankanbindung unter Linux Datenbankprogrammierung 10
D DAtenbankanbindung im OO-Aufbau Datenbankprogrammierung 5
M vorschläge bzgl. java programm mit datenbankanbindung Datenbankprogrammierung 4
M Datenbankanbindung - Passwort schützen Datenbankprogrammierung 6
M Datenbankanbindung: Java - MySQL Datenbankprogrammierung 2
K Problem mit datenbankanbindung unter access 2003 Datenbankprogrammierung 3
C Datenbankanbindung ohne ODBC JDBC Brücke Datenbankprogrammierung 5
R Fehler in Datenbankanbindung Servlet -> Access Datenbankprogrammierung 5
P Datenbankanbindung (erstmal) zu Access Datenbankprogrammierung 3
S Datenbankanbindung + HTML + Applet Datenbankprogrammierung 7
M Datenbankanbindung in Java : Newbie-Frage Datenbankprogrammierung 2
H Datenbankanbindung MySQL per JDBC Datenbankprogrammierung 4

Ähnliche Java Themen


Oben