Я использую автономные приложения spring и hibernate. Я использую приведенную ниже конфигурацию.
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${driverClassName}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="annotatedClasses">
<list>
<value>com.some.SomePojo</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${mdm.db.dialect}</prop>
</props>
</property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
Открывает ли DriverManagerDataSource соединение с базой данных каждый раз, когда запрашиваются данные? или он повторно использует уже открытое соединение? Кроме того, закрывает ли он неиспользуемые соединения? чтобы использовать концепцию пула соединений, нужен ли мне c3p0?
Спасибо!