DAO 支持
Spring 为DAO的编写带来的好处
基于JDBC的DAO实现
基于 Hibernate 的DAO实现
------------------------
Spring 为DAO的编写带来的好处:
1)优化了的异常类型体系:
细化了数据访问异常,丰富了异常类型
都是 Unchecked Exception
与使用的持久化技术无关
2)开发者不再写模式化代码:
Spring提供了模板类对此负责
基于JDBC的DAO实现:
使用 JdbcTemplate:
1)意义:简化对JDBC的操作
模板负责:JDBC对象的获取释放,异常类型的转化
开发者负责:提供SQL,设置SQL中的变量,提取ResultSet
2)应用:
核心方法:
query
update
核心回调接口:
PreparedStatementCreator
PreparedStatementSetter
ResultSetExtractor
RowMapper
2)在DAO中获得JdbcTemplate的两种方式:
A)给DAO注入JdbcTempate:
Bean配置:DataSource->JdbcTemplate->DAO
B)使DAO类继承 JdbcDaoSupport :
继承的方法:getJdbcTemplate()
Bean配置:DataSource->DAO
基于 Hibernate 的DAO实现:
使用 HibernateTemplate :
1)意义:包装对 Session 的操作
Session的打开与关闭
转化Hibernate异常类型为Spring统一的异常类型
2)应用:
核心方法雷同 Session
简化查询,直接使用 find
3)在DAO中获得HibernateTemplate的两种方式:
A)给DAO注入:
Bean配置:
DataSource->SessionFactory->HibernateTemplate->DAO
B)使DAO类继承HibernateDaoSupport
继承的方法:getHibernateTemplate()
Bean配置:
DataSource->SessionFactory->DAO
4)配置 SessionFactory:
LocalSessionFactoryBean
dataSource
mappingResources
hibernateProperties
示例:
分别基于Jdbc与Hibernate实现的Dao实例