域层与持久层的区别

时间:2011-11-24 07:07:35

标签: java persistence

域层和持久层是指相同还是不同。 域层是我们通常映射到数据库表的DAO吗?那么持久层意味着相同还是更多呢?

如果我们调用POJO将数据库表映射为DAO,我们说的是那些驻留查询执行并填充DAO(POJOS)的类。

最佳做法是什么?将查询执行代码保存在那些POJO中还是将它们作为一个单独的类?我的意思是假设A是数据库表A的类映射。我们是否需要实现像ADaoImpl这样的单独类来放置类A的查询相关代码?我相信它不对吗?最好的做法是保持所有DAO对象在一个名为RDBMSDaoImpl的类中与所有DAO类相关的填充,查询执行等。所以我们将该类称为属于DAO层的应用程序的DAO实现类对吗?

总结一下,POJOS(DAO)和DAOImpl是我们应用程序的DAO层吗?并且持久层是..?

感谢。

3 个答案:

答案 0 :(得分:2)

维基百科:“业务逻辑层(BLL),也称为域层”。这就是服务层,您可以在其中执行业务逻辑。持久层负责操作数据库,服务层使用它。

(顺便说一下,我更喜欢“服务层”而不是“贫乏的应用程序中的”域层“ - 也就是说,应用程序包含无状态,胖服务和只有getter和setter的域对象。)

答案 1 :(得分:1)

域层是您为对象和应用程序功能建模的地方。如果要构建开票应用程序,则域图层应包含Invoice,Vat和InvoiceItem对象。 dao层负责从存储中检索和保存对象(RDMS数据库,NoSQL数据库等)。 在你的代码中你可以有像

这样的东西
public InvoiceDao {
    public void insert(Invoice invoice) {
    //use your database api to insert invoice
    }
}

答案 2 :(得分:0)

1-持久层:是处理数据库的层,   它由一组映射数据库的类和其上的所有操作组成   表。  summery:您将数据库与业务层分开。 2-业务(DAL):从持久层中存在的类中启动(创建)对象。