gpt4 book ai didi

java - 从基于 MVC 的 GUI 访问数据访问层

转载 作者:行者123 更新时间:2023-12-02 13:40:21 26 4
gpt4 key购买 nike

情况:我有一个使用 JavaFX 编码的 MVC 应用程序。
我有另一个应用程序编码数据访问层。
基本上,我需要从 MVC 应用程序访问 DAL 来显示数据。

目标:我希望有一个独立于“View”项目的数据访问层。即,我希望能够使用相同的 DAL 在 GUI 上显示数据,就像在 JSP 上一样(例如)。

问题:如果两个应用程序作为包位于同一个应用程序中,我将能够使用 DAL 中的模型类来填充数据库中的对象列表。

但是,由于我有两个不同的应用程序(假设 DAL 已经存在,由另一个团队编码),我无法引用 DAL 中的模型类,因为我已经在 MVC 项目中引用了 DAL 项目(此将导致循环引用)。

简而言之,引用是这样的:DAL => MVC
但我需要使用 DAL 中的模型来从数据库请求填充类。

考虑的解决方案:我想过使用DAO设计模式,但是它不应该在DAL项目中而不是在MVC项目中吗?这并没有真正解决问题。

我觉得需要有特定的业务类,然后应该将其转换为 MVC 项目中的模型类(恕我直言,这听起来有点不稳定和多余)

PS:JavaFX 的模型层是有约束的(使用 StringPropery、IntegerProperty 等字段),否则我会将其隔离为一个独立的项目(也许,只是一个选项...)

最佳答案

我就这样走。在 DAL 项目中创建一个哑 DTO 层,并让您的 DAL 项目从数据库获取数据、填充 DTP 并返回 DTO。 MVC 项目仍然可以将 DAL 项目作为您的依赖项。

在MVC Service类中,调用DAL代码,获取DTO对象并映射到JavaFX Model对象。通过这样做,任何使用 DAL 项目的应用程序都将获得统一的 DTO 作为响应,并且消费者可以根据需要将其映射到自己的模型。

注意:通常,在 Spring 世界中,模型非常愚蠢,只有 getter 和 setter,我会将它们作为 DAL 项目本身的一部分。我想把它们转移到 DAL 本身。由于模型对象特定于 JavaFX,我不会考虑将它们移动到 DAL。

希望有帮助。

关于java - 从基于 MVC 的 GUI 访问数据访问层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42764998/

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