1. 一个DAO工厂类;
2. 一个DAO接口;
3. 一个实现DAO接口的具体类;
4. 数据传递对象(有些时候叫做值对象).
关于DAO要记住的一件重要事情是它们是事务性对象。
每个被DAO执行的操作(对象创建,更新、或删除数据)都是和事务相关联的。
同样的,事务划分(transaction demarcation)的概念是特别重要的。
事务划分是在事务界定定义中的方式。
J2EE规范为事务划分描述了两种模式:编程性事务(programmatic)和声明性事务(declarative).下表是对这两种模式的拆分:
声明性事务划分 编程性事务划分
程序员使用EJB的部署描述符声明
事务属性 程序员担负编写事务逻辑代码的责任。
运行时环境(EJB容器)使用这些属性来自动的管理事务。应用程序通过一个API接口来控制事务。