0

使用数据源和使用 hibernateProperties 有什么区别。我想在我的应用程序中使用 c3P0 和 spring。我找到了两种方法,但我无法理解两者之间的区别

第一的:

<bean id="sessionFactory"
          class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" 
          depends-on="dataSource">
        <property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
            <props>

                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.format_sql">false</prop>
                <prop key="hibernate.use_sql_comments">false</prop>


            </props>
</property>

<bean id="dataSource" destroy-method="close"
        class="com.mchange.v2.c3p0.ComboPooledDataSource" >
        <property name="maxPoolSize" value="10" />
        <property name="numHelperThreads" value="5" />


</bean>

第二:

<bean id="sessionFactory"
              class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" 
              >

    <property name="hibernateProperties">
                <props>


            <property name="hibernate.c3p0.maxSize" value="100" />
            <property name="hibernate.c3p0.numHelperThreads" value="5" />>


                </props>
    </property>
    </bean>
4

1 回答 1

2

首先,您将获得一个 Spring 托管数据源,您也可以将其用于 JdbcTemplate 或其他工作。

第二个你得到一个休眠管理的数据源,它不能被 Spring 重用。

我强烈建议第一种方法,因为它还可以很容易地替换数据源进行测试(通过将其替换为内存数据库)或将其替换为 JNDI 查找。

于 2013-09-11T15:13:23.757 回答