什么是DAO

来源:互联网 发布:angular数据绑 编辑:程序博客网 时间:2024/06/05 03:30

DAO(Database Access Object),顾名思义就是数据库访问接口,也就是和数据库打交道操作对象.而这些操作往往可以从系统的业务逻辑中独立出来,从而使系统中的数据库操作变得统一和简单化(相对于数据库具体操作混合业务逻辑操作),而且也可以使得系统在和数据库交互出错时,更快的定位问题.
总而言之,我觉得,使用DAO的目的是,将数据控制层和业务逻辑控制层分离开,这样不仅更有利于项目开发时的功能划分和工作分配(负责数据层的人员只注重数据操作,负责业务逻辑控制的开发人员只关注业务逻辑,使得各人的分工简化明晰),在项目维护时也更容易定位和解决问题.

我对DAO层的理解是:DAO层只对数据访问(一般是访问数据库)进行管理,不涉及具体业务逻辑。

使用DAO很重要的一个原因是 单元测试。分开的service和dao可以单独测试。dao做数据库继承测试,service做mock模拟测试。


如果你的service里涉及除dao之外的业务逻辑,比如计算这个那个之类的,分离测试的好处就非常非常明显。

现在我就建一个实现常用接口的DAO Class,通过spring配置不同的DAO Object,90%以上的DAO Class都不用写了.做了一个30个table的App,只写了2个DAO Class.
既可保持层次架构,又简便.

 
原创粉丝点击