# Datenbankanbindung MySQL per JDBC



## HoLgAy (11. Okt 2004)

Hi!

Also erstmal muss ich los werden, dass ich absoluter JSP-Anfänger bin. Habe jetzt ein projekt in dem ich mit Tomcat Server und JSP-Seiten arbeiten soll und mit einer Datenbank.
Mein Server steht und läuft auch. Das einzige Problem was ich noch habe ist, dass ich keine Anbindung an die Datenbank hinbekomme oder tausende Fehlemeldungen.
Was ich bisher gemacht habe ist:
im Tomcat per Administration die Datenbankconnection in den connection-pool eingetragen.



```
<%@ page language="java" import="java.sql.*"%>
<html>
<head>
 <title>OSS 2.0</title>
 <link rel="stylesheet" href="styles.css" type="text/css">
</head>
<body>

<%
 // Obtain our environment naming context
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// Look up our data source
DataSource ds = (DataSource)
envCtx.lookup("jdbc/test_db");
Connection db = ds.getConnection();

%>

<%!
 Statement sql = null;
 ResultSet rs = null;
%>

<%

 //db = DriveManager.getConnection("jdbc:mysql://localhost/v081004","root","");
 sql = db.createStatement();
 rs = sql.executeQuery("select * from kg_bilder_tab");

 while (rs.next())
 {
  int anz = rs.getInt("anzahl_bilder");
  out.print(anz);
 }
%>

</body>
</html>
```
Das hier ist mein Code und es kommen 6 fehlermeldungen, dass er irgendwelche classen nicht kennen würde etc.
Hat jemand eine Ahnung was ich noch vergessen haben könnte ... Hab was davon gelesen unter /web-inf/web.xml zu verändern (was eintragen) habe ich auch gemacht ... unter /ROOT/web.xml - es gab aber auch schon den Fall dass die web.xml bei anderen Usern direkt in dem Verzeichnis liegt wo auch index.jsp drin ist? kann es was damit zu tun haben? Muss ich die server.xml verändern??

Meine Dateien befinden sich unter $catalina_home/webapps/ROOT/arbeit/
Ich habe auch schon gesehen, dass Files direkt in einem Ordner unter /webapps/mein_ordner/ liegen ... wenn ich dort aber einen Ordner anlege komme ich dort nicht direkt drauf per http://localhost:8080/mein_ordner/ - warum?

Vielen Dank schonmal für die Hilfe.


----------



## Bleiglanz (11. Okt 2004)

>> es kommen 6 fehlermeldungen, dass er 

Welche genau?

a) Es fehlen schon mal try-catch Abschnitte in deinem Code

b) passt der Eintrag in WEB-INF/web.xml zur Datasource

lern lieber erst mal die Grundlagen, bevor du auf Datenbanken losgehst. 

webapps enthält sog. Webverzeichnisse

webapps/fooo --->>  http://localhost:8080/foo/

man kann aber den Aufrufpfad auch selbst festlegen

JEDER dieser Ordner hat einen nach aussen unsichtbaren Unterordner

webapps/fooo/WEB-INF

in dem eine web.xml liegt. Der Ordner ROOT ist eine besondere Anwendung (mappt auf http://localhost:8080/ ohne Pfad, wenn du im ROOT-web.xml was einträgst, betrifft das deinen 

webapps/foooo

in keinster Weise


----------



## HoLgAy (11. Okt 2004)

Also die Fehlermeldungen sagen das hier:


```
An error occurred at line: 8 in the jsp file: /index.jsp
Generated servlet error:
D:\Tomcat\work\Catalina\localhost\arbeit\org\apache\jsp\index_jsp.java:56: cannot resolve symbol
symbol  : class Context 
location: class org.apache.jsp.index_jsp
Context initCtx = new InitialContext();
^


An error occurred at line: 8 in the jsp file: /index.jsp
Generated servlet error:
D:\Tomcat\work\Catalina\localhost\arbeit\org\apache\jsp\index_jsp.java:56: cannot resolve symbol
symbol  : class InitialContext 
location: class org.apache.jsp.index_jsp
Context initCtx = new InitialContext();
                      ^


An error occurred at line: 8 in the jsp file: /index.jsp
Generated servlet error:
D:\Tomcat\work\Catalina\localhost\arbeit\org\apache\jsp\index_jsp.java:57: cannot resolve symbol
symbol  : class Context 
location: class org.apache.jsp.index_jsp
Context envCtx = (Context) initCtx.lookup("java:comp/env");
^


An error occurred at line: 8 in the jsp file: /index.jsp
Generated servlet error:
D:\Tomcat\work\Catalina\localhost\arbeit\org\apache\jsp\index_jsp.java:57: cannot resolve symbol
symbol  : class Context 
location: class org.apache.jsp.index_jsp
Context envCtx = (Context) initCtx.lookup("java:comp/env");
                  ^


An error occurred at line: 8 in the jsp file: /index.jsp
Generated servlet error:
D:\Tomcat\work\Catalina\localhost\arbeit\org\apache\jsp\index_jsp.java:60: cannot resolve symbol
symbol  : class DataSource 
location: class org.apache.jsp.index_jsp
DataSource ds = (DataSource)
^


An error occurred at line: 8 in the jsp file: /index.jsp
Generated servlet error:
D:\Tomcat\work\Catalina\localhost\arbeit\org\apache\jsp\index_jsp.java:60: cannot resolve symbol
symbol  : class DataSource 
location: class org.apache.jsp.index_jsp
DataSource ds = (DataSource)
                 ^
6 errors
```

brauche ich die try-catch anweisungen denn zwingend? oder sehen die einfach nur schöner aus? Wenn die zwingend hier sind ... dann wäre es eher eine Hilfe, wenn du mir erklärst wie sie aussehen sollten ... oder?

Da mein Projekt hier Datenbanken erfordert MUSS ich eben mit Datenbanken arbeiten. Allgemein programmierung in java ist mir bekannt und Grundlagen ebenfalls ... bevor ich aber richtig anfangen kann brauch ich die Datenbankanbindung.

Gibt es vielleicht eine kleine Anleitung was ich alles beachten muss, wenn ich eine Datenbankanbindung machen will?

nochmal zum Schluss zu den Webordnern. Wenn ich mir aber einfach deinen webapps/foo Ordner anlege ... und dann auf http://localhost:8080/foo/ zugreifen will - bekomme ich NICHTS ... warum? oder anders gefragt: wo muss ich diese Webordner eintragen/angeben?? 
nochmal ThX


----------



## foobar (11. Okt 2004)

> brauche ich die try-catch anweisungen denn zwingend?


Nur Exceptions mit Checked-Option müssen gefangen respektive weiter geworfen werden.



> nochmal zum Schluss zu den Webordnern. Wenn ich mir aber einfach deinen webapps/foo Ordner anlege ... und dann auf http://localhost:8080/foo/ zugreifen will - bekomme ich NICHTS ... warum? oder anders gefragt: wo muss ich diese Webordner eintragen/angeben??


http://jakarta.apache.org/tomcat/tomcat-5.0-doc/appdev/index.html



> Gibt es vielleicht eine kleine Anleitung was ich alles beachten muss, wenn ich eine Datenbankanbindung machen will?


http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html


----------



## Bleiglanz (11. Okt 2004)

oje

1. jedes Beispiel mit jdbc, das du irgendwo findest, fängt irgendwo eine SQLException ab, lies mal nach

2. wenn du einen leeren Ordner webapps/fooo anlegst, dann ist er auch leer und der Tomcat zeigt NICHTS (leg mal eine index.jsp rein)

3. du musst javax.naming.Context/InitialContext und javax.sql.Datasource importieren


----------

