Hallo!
Das Ganze ist eigentlich recht einfach.
In meinem Beispiel verwende ich eine Oracle 9.2 Datenbank deren Instanz auf orcl registriert ist. Weiterhin habe ich einen Tomcat in der Version 5.0.29 und ich verwende den Datenbank Treiber aus dem der Oracle Datenbank beiliegendem ojdbc14.jar: (oracle.jdbc.driver.OracleDriver)
Kopiere die Jar- Datei welche deinen Datenbank Treiber enthält in das
common\lib
deiner Tomcat Installation.
Danach startest du den Tomcat und richtest mittels der Tomcat Manager Application eine Datenquelle ein. (Solltest du keinen Zugang zur Manager Applikation haben öffnest du einfach die tomcat-users.xml im /conf Verzeichnis und legst einen Benutzer an der die Rollen tomcat,admin,manager besitzt und speicherst die datei ab.)
Dadurch wird im Verzeichnis conf/catalina/localhost eine Datei Namens MeineWebApp.xml mit ähnlichen Inhalt angelegt:
(Meine Web App ist unter /asw registriert und enthät folgende Einstellungen zur Datenquelle in der Datei asw.xml)
Code:
<?xml version='1.0' encoding='utf-8'?>
<Context displayName="Avis" docBase="asw" path="/asw" workDir="work\Catalina\localhost\asw">
<Resource auth="Application" description="AVIS DB Connection" name="avisDB" type="javax.sql.DataSource"/>
<ResourceParams name="avisDB">
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>password</name>
<value>avis</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@localhost:1521:orcl</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>3</value>
</parameter>
<parameter>
<name>username</name>
<value>avis</value>
</parameter>
</ResourceParams>
</Context>
Mit Resource Name (avisDB) lege ich dann fest unter welchem Namen ich die Datenquelle im Tomcat finden kann.
Verwenden kann ich die Datenquelle dann wie folgt:
Code:
public static Connection getConnection() throws SQLException {
DataSource ds = null;
try {
Context ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("avisDB");
} catch (NamingException e) {
e.printStackTrace();
}
Connection con = ds.getConnection();
con.setAutoCommit(false);
return con;
}
Mit diesem Code-Fragment bekomme ich eine Verbindung aus dem vom Tomcat Gemanagedten Datanbank Connection Pool.
Wie du dann mit JDBC zu arbeiten hast kannst du den Java API Doc's entnehmen.
Siehe:
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html
http://java.sun.com/products/jdbc/faq.html
http://java.sun.com/developer/onlineTraining/Database/JDBCShortCourse/
Gruß Tom