DAO之我见:DAO是一种设计模式,提高代码灵活性。使用DAO之前,业务组件直接访问持久化数据。当持久化数据发生改变时(例如更换数据库厂商),此时业务组件要跟着改变。DAO的出现解决此类问题。DAO是一个抽象层,位于业务组件和持久化数据之间。因此,业务组件 要通过 DAO 对持久化数据进行访问。当底层数据发生改变时,只需要更改DAO即可,业务组件改动达到最小。
*********************** Spring 数据访问对象(Data Access Object,DAO)框架入门(翻译) ***************************
J2EE 应用中的业务组件普遍采用 JDBC API 访问和修改关系型数据库的持久化数据(指关系型数据库)。这样做常常会把持久化代码和业务逻辑混合在一起,实在太糟糕了。数据访问对象(Data Access Object,DAO)设计模式针对这一问题把持久化逻辑分离到数据访问类(DAO)中,以达到分离目的。
DAO 模式在业务逻辑层和持久化存储层之间引入了新的抽象层。 业务对象通过数据访问对象访问关系型数据库(数据源)。抽象层简化了应用程序代码增强了灵活性。太完美了,试想一下哪天改变了数据源,比如更换为其他数据库厂商的产品(例如 mySql-->Hbase),只需要修改数据访问对象(DAO),并且对业务对象的影响也是最小的。
details: http://www.blogjava.net/rosen/archive/2007/02/28/101226.aspx
***********************
Java中DAO的实现 ***************************
J2EE 开发人员使用数据访问对象(Data Access Object DAO)设计模式,以便将低级别的数据访问逻辑与高级别的业务逻辑分离,在本文中,Java 开发人员 Sean C. Sullivan 讨论了 DAO 编程中三个常常被忽略的方面:事务界定、异常处理和日志记录。details:http://blog.csdn.net/classicbear/article/details/7086598