用于 Web 应用程序 + 桌面应用程序的相同数据库

Posted

技术标签:

【中文标题】用于 Web 应用程序 + 桌面应用程序的相同数据库【英文标题】:the same database for a web application + desktop application 【发布时间】:2012-03-09 12:13:11 【问题描述】:

作为项目的一部分,我必须开发一个 Web 应用程序和一个用 Java 编写的服务器。 我对 JPA 和 Netbeans 下的 H2 数据库很熟悉,所以我想在我的项目中使用它们。

我的问题是:是否可以在使用 JPA 和 H2 作为数据库的 Web 和桌面应用程序中使用相同的数据库,而不使用 link 中描述的 Tomcat 和 Glassfish?

编辑:我认为tomcat是一个DBMS作为H2数据库,mysql ...答案是肯定的,我可以为两者使用相同的数据库...但是我需要使用tomcat, glassfish 或任何类型的 web 容器(服务器应用程序)只用于 web 应用程序,DBMS 是一个独立的东西:我可以使用 H2,apach derby...

对于 JPA,我必须按照链接中描述的教程进行操作。

【问题讨论】:

您希望桌面应用程序和 Web 应用程序访问同一个物理数据库吗?如果您不想使用 glassfish 或 tomcat,您打算为 Web 应用程序使用什么服务器? 您的问题促使我寻求并更正信息,谢谢 【参考方案1】:

你的问题并不完全清楚,所以让我猜一下:

您可以重复使用相同的h2 数据库,但它必须在服务器模式下工作,而不是直接访问磁盘。这样,Web 应用程序和您的桌面应用程序将同时使用 sama 数据源。

您还可以重用与数据库相关的代码(实体、DAO)等 JPA 规范。不与 Java EE 耦合,您可以轻松地在独立应用程序中使用它。只需将数据库代码提取到不依赖于 servlet/控制器的单独工件(如果您一直遵循 MVC 或任何其他健全的架构,它应该很简单)。

更新:看来您对堆栈的理解存在重大误解。您需要:数据库服务器 (DBMS),如 h2、apache-derby 或成熟的 mysql 或 oracle。您的应用程序与数据库通信并部署到应用程序服务器/servlet 容器,如tomcat 或glassfish。 Fianlly jpa 用于简化数据库访问。

【讨论】:

抱歉问题不是很清楚,这是造成虚假信息的原因......您的回答对我有帮助。请更新您的回复我愿意接受:-)

以上是关于用于 Web 应用程序 + 桌面应用程序的相同数据库的主要内容,如果未能解决你的问题,请参考以下文章

用于Web应用的桌面管理面板

如何将 Web 应用程序的登录名和密码数据传递到桌面应用程序而不造成任何安全风险

将 C# 桌面应用程序移植到 Web

Flutter 中用于 Web、移动和桌面应用程序的视频播放器?

如何为我的 php web 应用程序提供桌面通知? [复制]

将 ionic 用作桌面 Web 应用程序