首先,说明一下DataSource是什么?DataSoure中有一个getConnection()方法,说明DataSource管理着数据库的连接,所以一般将其称为连接池。DataSource是一个抽象类,具体有很多的实现。比如Spring中常用的DBCP,Hibernate中常用的C3PO,以及不太常用的proxool。
那么下面我们首先来将一个使用数据源的例子程序搭建起来。分为如下几步:
第一步:我们在beans.xml中配置好我们的数据源,也就是我们的连接池,然后配置好我们的sessionFactory,Hibernate中的sessionFactory管理者session。而一个sesseion我们可以把它当成我们连接数据库的一个Connection。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<context:annotation-config/>
<context:component-scan base-package="com.zxb"/>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
<bean id="dataSource" destroy-method="close"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bea