gpt4 book ai didi

java - 关于使用 Hibernate 时的数据对象和 DAO 设计

转载 作者:行者123 更新时间:2023-11-30 11:59:25 25 4
gpt4 key购买 nike

我在使用 Hibernate 的数据库项目的两种设计之间犹豫不决。

设计#1。

(1)创建通用数据提供者接口(interface),包括一组DAO接口(interface)和通用数据容器类。它隐藏了底层的实现。数据提供者实现可以访问数据库中的数据、XML 文件、服务或其他内容。数据提供者的用户不知道。

(2)用Hibernate创建数据库library。该库实现了 (1) 中的数据提供者接口(interface)。

设计#1 的缺点是,为了隐藏实现细节,我需要创建两组数据容器类。一个在通用数据提供者接口(interface)中——我们称它们为 DPI 对象,另一组用于数据库库,专门用于 Hibernate 中的实体/属性映射——我们称它们为 H 对象。在 DAO 实现中,我需要从数据库中读取数据以创建 H-Object(通过 Hibernate),然后将 H-Object 转换为 DPI-Object。

设计#2。

不要创建通用的数据提供者接口(interface)。将 H 对象直接暴露给使用数据库库的组件。所以数据库library的用户需要了解Hibernate。

我更喜欢设计#1,但我不想创建两组数据容器类。这是向使用基于数据库的数据提供程序的用户隐藏 H 对象和其他 Hibernate 实现细节的正确方法吗?

设计#2 有什么缺点吗?我不会在新的 future 实现其他数据提供者,所以我是否应该忘记数据提供者接口(interface)并使用设计 #2?

你怎么看这件事?感谢您的宝贵时间!

最佳答案

Hibernate Domain 对象是简单的 POJO,因此您不必创建单独的 DPI 对象,H-Object 本身可以直接使用。在 DAO 中,您可以控制它们是来自 hibernate 还是其他任何东西。

关于java - 关于使用 Hibernate 时的数据对象和 DAO 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2612057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com