Tach,
ich habe den Tomcat zum laufen gebraucht und muss nun wissen, wie ich damit auf eine datenbank zugreife. Kann mir jemand helfen?
ich würde hibernate und c3p0 vorschlagen:
Ich gehe davon aus, dass die Webapp als war verteilt und mysql als DB verwendet wird, ansonsten halt die Pfade/Klassen anpassen:
In META-INF/context.xml
<?xml version='1.0' encoding='utf-8'?>
<Context>
<Resource auth="Container" scope="Shareable" description="DB Connection" driverClass="com.mysql.jdbc.Driver" maxPoolSize="100" minPoolSize="10" acquireIncrement="1" name="jdbc/freiwaehlbar" user="username" password="pw" factory="org.apache.naming.factory.BeanFactory" type="com.mchange.v2.c3p0.ComboPooledDataSource" jdbcUrl="jdbc:mysql://db.example.org/dbname?autoReconnect=true" idleConnectionTestPeriod="300"/>
</Context>
In WEB-INF/web.xml
<resource-ref>
<res-ref-name>jdbc/freiwaehlbar</res-ref-name>
<res-type>com.mchange.v2.c3p0.ComboPooledDataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
In der Webapplikation eine hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.datasource">java:/comp/env/jdbc/freiwaehlbar</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.format_sql">false</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<mapping resource="org/example/dbname/hibernate/Objekt.hbm.xml" />
</session-factory>
</hibernate-configuration>
Die Mapping-Files (*.hbm.xml) und Klassen lasse ich üblicherweise in Ecplipse von den Hibernate-Tools erzeugen.
Zum Erzeugen von Sessions erzeugt man sich dann eine Session-Factory und der Rest ergibt sich vermutlich aus der Hibernate-Doku.
Configuration config = new Configuration();
config.configure("hibernate.cfg.xml");
SessionFactory sessionFactory = config.buildSessionFactory();
Die Jar-Files für die mysql-connection und c3p0 dürfen nicht in der Webapplikation liegen sondern direkt im Library-Verzeichnis des Tomcat liegen, sonst gibt es früher oder später Probleme beim Aufbau der Connection-Pools.
mfg
Woodfighter