-2

我目前正在写我的毕业论文,我被困在数据库通信主题上。我的问题不是实现,而是背后的架构JSF。我读了很多关于它,但并没有真正明白。

我所有的数据库访问都包含在EJB项目中,并使用 JDBC 处理。JPA 在 DB-Entities 和 Objects 之间进行映射。那么JDBC只是连接到数据库的驱动程序吗?

提前致谢!

4

2 回答 2

1

项目架构必须按照“低耦合、高内聚”的原则组织好

系统层应分开良好。基本架构有 3 层。

  1. 表示层:JSF 管理的 bean 在这一层。该层的任务是对应用户动作,保存用户数据并将数据展示给用户。基本上,无论您使用哪种实现(JSF、Spring MVC 或 Struts),它的职责都受 MVC 模式的限制
  2. Bussimess Logic Tier:从页面收集的数据和动作被发送到该层以对数据进行操作。您不应在 Presentation Tier 中处理数据并准备响应。这是业务逻辑层的责任。(Spring,CDI)
  3. 集成层:无论使用何种库技术(Hibernate、JPA、JDBC),都应该在这一层完成数据库访问。

示例企业 Java 架构

正如你在图片中看到的那样。您的 JSF 托管 bean 应该只能处理来自页面(控制器)和页面数据(模型)的请求。您可以查看此答案以了解 JSF MVC。因此,最好不要在 JSF 托管 bean 中连接 DB。这不是一个好习惯。

你问题的第二部分。所有技术,Hibernate、JPA、Spring JDBC,都使用相关数据库的 JDBC 驱动程序。JDBC 驱动程序是唯一连接到数据库的东西。但是,最好选择如何连接到 DB、Hibernate、JPA 或 Spring JDBC 的方法。

您可以下载我的示例应用程序,它基本上实现了这种架构。

于 2013-05-05T19:17:54.007 回答
0

JSF 绝不会连接到数据库管理,尽管后者通常总是在 JSF 应用程序中使用。

尽管所有工作都可以使用“普通 JDBC”完成,但使用 Java Persistence API 或 JPA 更合适。在后一种情况下,JPA 提供程序在幕后使用“普通 JDBC”。

以下列方式考虑这种关系:(原始)JDBC 对 JPA 就像(原始)Servlet 对 JSF 一样

于 2013-05-05T19:34:15.873 回答