Tomcat: Tomcat JSP

Hallo,

ich habe den Tomcat zum laufen gebraucht und muss nun wissen, wie ich damit auf eine datenbank zugreife. Kann mir jemand helfen?

Danke im voraus.

  1. ich habe den Tomcat zum laufen gebraucht und muss nun wissen, wie ich damit auf eine datenbank zugreife. Kann mir jemand helfen?

    Überhaupt nicht. Tomcat ist eine Servlet-Engine.

    Du brauchst noch ein Servlet, dass die Datenbankzugriffe erledigt  und dann Daten an den Tomcat weiterreicht, der diese dann an den Browser ausliefert.

  2. 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

  3. Vielen Dank für die Antworten.