如何在Eclipse中导出带有SQL数据库表的WAR文件。

3

我在Eclipse中创建了一个Java EE Technologies动态Web项目。该项目内部创建了一个数据库。在拥有Tomcat服务器的本地机器上进行测试可以正常工作。我想将这个带有数据库的项目部署到另一个运行Tomcat的系统上,因为我需要将我的项目交付给客户。如何完成这项任务?

是否有可能使用SQL表构建war文件。


1
“_The project creates a database within it_” 的意思是什么?它是通过 Java 代码创建的吗?您是否尝试在虚拟机等虚拟服务器上部署它? - Narmer
@Narmer项目类似于ERP。如果我们从Java代码创建它,那么每次代码运行时都会创建表格,这可能会导致一些问题,但我不确定。 - user3851613
你必须将表格导出并分别处理Web应用程序和数据库。为什么它们要绑定在一起?(在企业资源规划之外,我找不到与ERP相关的任何内容,这是你的意思吗?) - Narmer
@Narmer 不完全是ERP,因此我需要在其中构建一些表来导出数据,这就是我遇到困难的原因。 - user3851613
@Narmer 我需要创建一个包含数据库表的war文件。这是否可能?如果可能,请告诉我。 - user3851613
显示剩余7条评论
1个回答

2
在大多数情况下,答案是否定的,您无法导出使用Eclipse创建的嵌入式数据库的.war文件。
您需要单独导出数据库文件并将其上传到生产服务器。这通常意味着您必须安装您在开发过程中使用的数据库服务器并导出您的DDL和表数据。
在您的特定情况下(MySQL与Tomcat),我们可以说MySQL不适用于嵌入式使用,除非使用已过时且不完整的Java MySQL嵌入式库,这将导致您在项目DB配置方面进行一些重大更改。
您可以更改您的DB服务器,从MySQL切换到DerbyH2(感谢@specializt)它们有可能直接将服务器嵌入您的war文件中。
这段文字直接摘自Eclipse Corner Article on Creating Database Web Applications with Eclipse
请注意!!:该链接的文章已过时,因此您不应完全依赖它。引用部分仍然与您的情况敏感,并涵盖Derby数据库部署。
部署数据库
当您准备将应用程序部署到生产Tomcat应用程序服务器时,必须将Derby数据库数据文件夹复制到应用程序服务器计算机上。然后,您有几个选项可以从部署的应用程序中访问Derby数据库。
您可以在应用程序服务器计算机上安装Derby,并以客户端/服务器模式运行它。您的应用程序使用与我在本文中演示的相同技术连接到数据库。这种方法的缺点是您需要管理两个服务器进程:Tomcat和Derby。
您可以在嵌入式模式下使用Derby。在这种情况下,Derby引擎在Tomcat进程内运行。您不必单独停止和启动Derby。有关更多信息,请参阅Derby网站。

@specializt 我认为 OP 的意思是在 Tomcat 环境中上传整个数据库,包括服务器。正如你所说,数据库必须在启动时运行,因此必须先部署数据库。如果 OP 只想从 war 文件中加载 DDL 和数据,则可以像你所说的那样实现(我甚至认为有些框架使其非常容易)。 - Narmer
据我所知,唯一的方法是使用Derby embedded,正如我在我的回答中提到的那样。 - Narmer
link link - specializt
@specializt 但我正在使用Apache Tomcat服务器和MySQL数据库。 - user3851613
好的,如果在war中嵌入MySQL服务器是可能且简单的,请回答问题并提供您的解决方案(我很认真,现在我也很好奇),我们无需在这里讨论 :) - Narmer
显示剩余15条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接