API:java持久化
OO:面向对象
DAO:数据访问对象
设计数据访问层的合理方式:
服务对象-------->DAO接口《======DAO实现
服务对象本身并不会处理数据访问,而是将数据访问委托给DAO。DAO接口确保其与服务对象的松耦合
此外,数据访问层是以持久化技术无关的方式来进行访问的。
持久化方式的选择独立于DAO,只有相关的数据访问方法通过接口来进行发布。
为了实现将数据访问层与应用层程序的其他部分隔离开来,Spring采用的一个方式就是提供贯穿整个DAO框架的统一异常体系。
spring为读取和写入数据库的所有错误都提供了异常,但它并没有与特定的持久化方式相关联。
这意味着我们可以使用Spring抛出一致的异常,而不用关心所选择的持久化方案。
spring认为触发异常的很多问题是不能在catch代码块中修复的。Spring使用了非检查型异常DataAccessException
Spring将数据访问过程中固定和可变的部分明确划分为两个不同的类:模版(template)和回调(callback)。
模版 管理过程中固定的部分回调 处理自定义的数据访问代码
DAO模块 DAO回调
--------------------------------------------
1.准备资源
2.开始事务 ------------------> 3.在事务中执行
-------------------------------------------
5.提交/回滚事务 <------------- 4.返回数据
6.关闭资源和处理错误
spring 提供的数据访问模版,分别使用与不同的持久化机制
模版(org.springframework.*) | 用途 |
jca.cci.core.CciTemplate | JCA CCI链接 |
jdbc.core.JdbcTemplate | JdbC链接 |
jdbc.core.namedparam.NamedParameterJdbcTemplate | 支持命名参数的JDBC |
jdbc.core.simple.SimpleJdbcTemplate | Java5简化后的JDBC链接 |
orm.hibernate.HibernateTemplate | Hibernate2.x 的Session |
orm.hibernate3.HibernateTemplate | Hibernate3.x 的Session |
orm.ibatic.SqlMapClientTemplate | iBATIS SqlMap 客户端 |
orm.jdo.JdoTemplate | Java数据对象实现 |
orm.jpa.JpaTemplate | Java持久化API的实体管理器 |
-----------------------------------------------未完待续-------------------每天更新--------------------------------------
原文地址:http://blog.csdn.net/kldxcr/article/details/22084635