Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment configurer Hibernate, Spring et Apache dbcp pour le pooling de connexion ?

Ne fais pas ça comme ça. Configurez la source de données que vous souhaitez utiliser dans Spring ainsi que Hibernate. Abandonnez le hibernate.dbcp et hibernate.connection Propriétés.

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <property name="url" value="jdbc:mysql://localhost:3306/app"/>
    <property name="username" value="foo"/>
    <property name="password" value="bar"/>
    // Other DBCP properties here
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource"  ref="dataSource"   
    <property name="packagesToScan">
        <list>
            <value>com.my.app.model</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
</bean>

Ajoutez simplement le dataSource propriété à votre AnnotationSessionFactoryBean comme dépendance et fait. Notez que vous n'avez pas besoin de configurationClass propriété car elle est déjà basée sur des annotations.

Un conseil que je ne suggérerais plus d'utiliser Commons-DBCP comme source de données, jetez plutôt un œil à HikariCP comme une meilleure mise en œuvre de la source de données.

Pour plus d'informations sur l'intégration/la configuration d'Hibernate avec Spring, je suggère cette section du Guide de référence.