模板化的訪問方式
在直接使用具體的持久化技術(shù)時(shí)勿璃,我們大多需要處理整個(gè)流程鸳慈。Spring為支持的持久化技術(shù)分別提供了模板訪問的方式檐涝,降低了使用各種持久化技術(shù)的難度酪捡,可以大幅提高開發(fā)效率归榕。
使用模板和回調(diào)機(jī)制
Spring為各種支持的持久化技術(shù)都提供了簡化操作的模板和回調(diào)尸红,在回調(diào)中編寫具體的數(shù)據(jù)操作邏輯,使用模板執(zhí)行數(shù)據(jù)操作,在Spring中外里,這是典型的數(shù)據(jù)操作模式怎爵。
JDBCTemplate
HibernateTemplate
SqlMapClientTemplate
如果我們直接使用模板類,一般都需要在DAO中定義一個(gè)模板對象并提供數(shù)據(jù)資源盅蝗,Spring為每一個(gè)持久化技術(shù)都提供了支持類鳖链,支持類中已經(jīng)為我們完成這樣的功能。這樣风科,我們只需要擴(kuò)展這些支持類就可以直接編寫實(shí)際的數(shù)據(jù)訪問邏輯撒轮,沒有絲毫阻隔。
JdbcDaoSupport
HibernateDaoSupport
SqlMapClientDaoSupport
數(shù)據(jù)源贼穆,不管通過何種持久化技術(shù)题山,都必須擁有數(shù)據(jù)連接,在Spring中故痊,數(shù)據(jù)連接是通過數(shù)據(jù)源獲得的顶瞳,可以直接在Spring容器中配置數(shù)據(jù)源。
jdbcTemplate
spring提供用于操作JDBC工具類愕秫,類似:DBUtils
依賴連接池DataSource(數(shù)據(jù)源)
環(huán)境:
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}獲得內(nèi)容
-->