(笔记)Spring实战_征服数据库(1)_Spring的数据访问哲学

来源:互联网 发布:天津网络推广公司排名 编辑:程序博客网 时间:2024/04/19 15:44

DAO是数据访问对象(data access object)的缩写。DAO提供了数据读取和写入到数据库中的一种方式。它们应该以接口的方式发布功能,而应用程序的其他部分就可以通过接口来访问了。
数据访问层是以持久化技术无关的方式来进行访问的。持久化方式的选择独立于DAO,只有相关的数据访问方法通过接口来进行发布。这可以实现灵活的设计并使得切换持久化框架对应用程序其他部分所带来的影响最小。
倾向于将持久层隐藏在接口之后 .. 接口是实现松耦合代码的关键。
为了实现将数据访问层与应用程序的其他部分隔离开来,Spring采用了一个方式就是提供贯穿整个DAO框架的统一异常体系。
1.了解Spring的数据访问异常体系
JDBC SQLException:SQLException被视为处理数据访问所有问题的通用异常。对于所有的数据访问问题都会抛出SQLException,而不是对每种可能的问题都会有不同的异常类型。
Hibernate:提供了20个左右的异常,分别对应于特定的数据访问问题。这样就可以针对想处理的异常编写catch代码块。即便如此,Hibernate的异常是其本身所特有的。我们想使特定的持久化机制独立于数据访问层。如果抛出了Hibernate所特有的异常,那么对Hibernate的使用将会渗透到应用程序的其他部分。
Spring的平台无关持久化异常
Spring几乎为读取和写入数据库的所有错误都提供了异常。
我们可以使用Spring抛出一致的异常,而不用关心所选择的持久化方案。这有助于我们将所选择持久化机制与数据访问层隔离开来。
DataAccessException只是Spring处理检查型异常和非检查型异常哲学的一个范例。Spring认为触发异常的很多问题是不能再catch代码块中修复的。Spring使用了非检查异常,而不是强制开发人员编写catch代码块(里面经常是空的)。
为了利用Spring的数据访问异常,就需要使用Spring所提供的数据访问模板。
2.数据访问模板化
模板方法定义了过程的主要框架。
模板方法将过程中与特定实现相关的部分委托给接口,而这个接口的不同实现定义了过程中的具体行为。
Spring将数据访问过程中固定的和可变的部分明确划分为两个不同的类:模板和回调。模板管理过程中固定的部分,而回调处理自定义的数据访问代码。

模板类(org.springframework.*) 用途 jdbc.core.JdbcTemplate JDBC连接 jdbc.core.simple.SimpleJdbcTemplate 通过java5简化后的JDBC连接 orm.hibernate3.HibernateTemplate Hibernate 3.x的Session orm.jpa.JpaTemplate Java持久化API的实体管理器

使用数据访问模板只需将其配置为Spring上下文中的Bean并将其织入到应用程序的DAO中。或者,你还可以使用Spring的DAO支持类进一步简化应用程序的DAO配置。
3.使用DAO支持类
当编写应用程序自己的DAO实现时,可以继承自DAO支持类并调用模板获取方法来直接访问底层的数据访问模板。
另外,如果你需要访问底层的持久化平台,则每个DAO支持类都能够访问其与数据库进行通信的类。

DAO支持类(org.springframework.*) 为谁提供DAO支持 jdbc.core.support.JdbcDaoSupport JDBC连接 jdbc.core.simple.SimpleJdbcDaoSupport 通过java5简化后的JDBC连接 orm.hibernate3.support.HibernateDaoSupport Hibernate 3.x的Session orm.jpa.support.JpaDaoSupport Java持久化API的实体管理器
0 0
原创粉丝点击