作为项目的一部分,我必须开发一个Web应用程序和一个用Java编写的服务器。 我熟悉Netbeans下的JPA和H2数据库,所以我想在我的项目中使用它们。
我的问题是:是否可以在使用JPA和H2作为数据库的Web和桌面应用程序中使用相同的数据库,而不使用Tomcat& Glassfish如本link?
所述编辑:我以为tomcat是一个DBMS作为H2数据库,Mysql ...答案很简单,我可以使用相同的数据库...但我需要使用tomcat, glassfish或任何类型的Web容器(Server Application)仅用于Web应用程序,DBMS是一个独立的东西:我可以使用H2,apach derby ......
对于JPA我必须遵循链接中描述的教程。
答案 0 :(得分:3)
你的问题并不完全清楚,所以让我猜一下:
您可以重用相同的h2数据库,但它必须在服务器模式下工作,而不是直接访问磁盘。这样,Web应用程序和桌面应用程序将同时使用sama数据源。
您还可以重复使用与数据库相关的代码(实体,DAO)等.JPA规范。如果没有Java EE,您可以在独立应用程序中轻松使用它。只需将数据库代码提取到一个单独的工件(如果您一直遵循MVC或任何其他理智的体系结构,它应该很简单),它不依赖于servlet / controller。
更新:因此,您对堆栈的理解似乎存在一个重大误解。您需要:数据库服务器(DBMS),如h2,apache-derby或完整的mysql或oracle。您的应用程序与数据库通信,并部署到应用程序服务器/ servlet容器,如tomcat或glassfish。 Fianlly jpa用于简化数据库访问。