1、spring对DAO的支持
Java代码public class AccountServiceImpl implements AccountService{
private AccountDao accountDao;
/** set方法注入 */
public void setAccountDao(AccountDao accountDao);
this.accountDao = accountDao;
}
public void insert(Account acc){
accountDao.insert(acc);
}
}
从这个类的源代码可以看出,程序所依赖的是数据访问接口。因此,可以随时更换AccountDao的实现类。Spring的DAO框架正式基于这样的基本原理来将应用程序与底层数据存取技术解耦的。
2、数据源的注入
对数据库数据执行任何的存取操作,必须要有数据源,spring提供了javax.sql,DataSource注入,这样在需要更换数据源时只需要在spring配置文件中修改即可。而不需要修改程序代码。
不同的应用系统可能使用不同的数据源。
2.1、不带连接池的数据源
Xml代码
<!– 配置不带连接池的数据源 –>
<bean id=”dataSource” class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>
<property name=”driverClassName” value=”com.mysql.jdbc.Driver” />
<property name=”url” value=”jdbc:mysql:///spring” />
<property name=”username” value=”root” />
<property name=”password” value=”123>
</bean>
<bean id=”accountDao” class=”com.zxf.dao.AccountDaoImpl”>
<property name=”dataSource” ref=”dataSource” />
</bean>
<bean id=”accountService” class=”com.zxf.service.AccountService”>
<property name=”accountDao” ref=”accountDao”/>
</bean>
2.2、集成第三方连接池技术的数据源
第一种方式所获取的数据源是不带连接池的,不适合正式的商业使用。正式的商业应用需要使用带连接池的数据源,比较常见的第三方连接池有:DBCP和C3P0。
要想使用第三方的连接池技术,首先需要在项目类路径下添加它的类库。
commons-dbcp.jar 和 commons-pool.jar.