1.JdbcTemplate
JDBC模板,Spring在JDBC上做了封装,承担了资源管理和异常处理的工作,从而简化JDBC代码,我们只需要编写操作数据库的必要代码。
使用JdbcTemplate,需要为其设置DataSource;或者使用JdbcDaoSupport,设置DataSource后会实例化JdbcTemplate,通过getJdbcTemplate()获取实例
1.1.测试Spring4.1.3,配置略;数据源使用的是DBCP,配置如下:
(1).pom.xml
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
(2).spring配置文件
<!-- 配置dbcp数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${dbcp.driver}" />
<property name="url" value="${dbcp.url}" />
<property name="username" value="${dbcp.username}" />
<property name="password" value="${dbcp.password}" />
<property name="maxActive" value="${dbcp.maxActive}"/>
<property name="minIdle" value="${dbcp.minIdle}"/>
<property name="maxWait" value="${dbcp.maxWait}"/>
</bean>
2.配置
2.1方式一,使用JdbcTemplate
Spring IoC容器中配置JdbcTemplate的bean,同时注入DataSourse;再将JdbcTemplate注入到Dao中
java代码:
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
...
}
Spring配置文件:
<context:component-scan base-package="com.my.spring.jdbc.dao"/>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" p:dataSource-ref="dataSource">
</bean>
2.2方式二,使用JdbcDaoSupport
UserDaoImpl继承JdbcDaoSupport,Spring IoC容器中配置UserDaoImpl的bean,同时为JdbcDaoSupport注入DataSource。通过getJdbcTemplate()获取JdbcTemplate实例使用即可。
java代码:
public class UserDaoImpl extends JdbcDaoSupport implements UserDao {
@Override
public void save(User user) {
getJdbcTemplate().update(sql, ...);
}
}
Spring配置:
<bean id="userDao" class="com.my.spring.jdbc.dao.impl.UserDaoImpl" p:dataSource-ref="dataSource">
</bean>
2.3方式三,修改方式二
按照方式二的方式,每增加一个Dao就需要在Spring IoC容器中配置bean,不符合偷懒原则,所以最好思考了一下使用注解方式注入DataSource。注入DataSource后获取JdbcTemplate实例,类似于方式一(ps:这么麻烦使用方式一就好了,,)
Java代码:
@Repository
public class UserDaoImpl extends JdbcDaoSupport implements UserDao {
private JdbcTemplate jdbcTemplate;
@Autowired
public void initDataSource(DataSource dataSource) {
super.setDataSource(dataSource);
this.jdbcTemplate = super.getJdbcTemplate();
}
}
Spring配置文件:
<context:component-scan base-package="com.my.spring.jdbc.dao"/>