模板化的访问方式
在直接使用具体的持久化技术时,我们大多需要处理整个流程。Spring为支持的持久化技术分别提供了模板访问的方式,降低了使用各种持久化技术的难度,可以大幅提高开发效率。
使用模板和回调机制
Spring为各种支持的持久化技术都提供了简化操作的模板和回调,在回调中编写具体的数据操作逻辑,使用模板执行数据操作,在Spring中,这是典型的数据操作模式。
JDBCTemplate
HibernateTemplate
SqlMapClientTemplate
如果我们直接使用模板类,一般都需要在DAO中定义一个模板对象并提供数据资源,Spring为每一个持久化技术都提供了支持类,支持类中已经为我们完成这样的功能。这样,我们只需要扩展这些支持类就可以直接编写实际的数据访问逻辑,没有丝毫阻隔。
JdbcDaoSupport
HibernateDaoSupport
SqlMapClientDaoSupport
数据源,不管通过何种持久化技术,都必须拥有数据连接,在Spring中,数据连接是通过数据源获得的,可以直接在Spring容器中配置数据源。
jdbcTemplate
spring提供用于操作JDBC工具类,类似:DBUtils
依赖连接池DataSource(数据源)
环境:
com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
dbcp
commons pool
spring-jdbc-3.2.0.RELEASE.jar
spring-tx-3.2.0.RELEASE.jar:
A.在程序中直接使用
B.在XML中配置DBCP
"dataSourceId"class="org.apache.commons.dbcp.BasicDataSource">
"driverClassName"value="com.mysql.jdbc.Driver">
"url"value="jdbc:mysql://localhost:3306/hibernate3">
"username"value="root">
"password"value="root">
"jdbcTemplateId"class="org.springframework.jdbc.core.JdbcTemplate">
"dataSource"ref="dataSourceId">
"userDaoId"class="com.dream.dao.UserDao">
"jdbcTemplate"ref="jdbcTemplateId">
Dao层代码的编写
配置C3P0
JdbcDaoSupport
编写dao
public class UserDao extends JdbcDaoSupport{
public void update(User user){
String sql = "update user set username=?,password=? where id =?";
Object[] args = {user.getUsername(),user.getPassword(),user.getId()};
this.getJdbcTemplate().update(sql, args);
}
public List findAll() {
return this.getJdbcTemplate().query("select * from user", ParameterizedBeanPropertyRowMapper.newInstance(User.class));
}
}
配置更改
Properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://localhost:3306/hibernate3
jdbc.user=root
jdbc.password=root
"classpath:"前缀表示src下
在配置文件之后通过${key}获得内容
-->