1.数据存储逻辑的分离
通过对数据访问的逻辑进行抽象,为上层结构提供抽象化数据库访问的接口,业务层不用关心具体的数据操作,只负责调用方法,这样可以避免业务代码中混杂JDBC调用语句,使得业务逻辑更加清晰,另一方面,也使得开发人员的专业划分
2.数据库访问底层现实的分离
DAO模式通过将数据访问划分为抽象层和实现层,从而分离了数据使用和数据访问的底层实现细节,我们可以保持上层结构不变的情况下,改变下层的访问数据具体机制
3.资源管理和调度的分离
DAO模式将数据访问逻辑从业务逻辑中脱离出来,使得在数据访问层实现统一的资源调度成为可能,通过数据库连接池以及各种缓存机制(Statement Cache,Data Cache等)的配合使用,往往可以在保持上层系统不变的情况下,大幅度提升系统性能
4.数据抽象
DAO模式通过对底层数据的封装,为业务层提供一个面向对象的接口,使得业务逻辑开发人员可以面向业务中的实体进行编码
从某种意义上我们可以这样理解DAO
Data Accessor Object(DAO)=Data+Accessor+domain Object