【问题标题】:How to embed database derby in jar file如何在jar文件中嵌入数据库derby
【发布时间】:2015-05-12 05:17:04
【问题描述】:

我不想在目标机器上安装数据库服务器。有可能我们可以简单地发送一个嵌入了数据库的 jar 文件,而不用担心单独安装数据库服务器吗?
我使用 derby 在 netbeans 中创建了一个应用程序,它在我的电脑上运行良好,但是当我在其他机器上运行时,它给了我Error connecting to server localhost on port 1527 --> this error says that there is no Database running on port 1527. 但我不希望客户端应该花更多的精力来启动数据库服务器和所有技术过程.当我启动应用程序 Derby DB 应该启动并且当我关闭 DB 应该关闭时,它应该可以简单地运行。
那么我的问题的解决方案是什么?
还有一个问题是我可以将 derby 数据库用于大型项目吗?

【问题讨论】:

  • 在生产中使用DERBY非常困难。我的提议是使用mysql :)
  • HSQL 是轻量级数据库服务器,您可以将服务器嵌入到您的应用程序中。您可以以编程方式启动/停止。
  • 请注意,如果客户端和服务器在不同的机器上,则 JDBC 连接 URL 不能指定“localhost”。您必须为客户端获取正确的网络名称以用于连接到该服务器计算机,并且您必须确保防火墙等允许客户端建立该连接。另请注意,服务器是单独机器上的单独进程,它不会自动启动或停止;如果您需要自动启动和停止网络服务器,则必须配置您的操作系统。

标签: java derby


【解决方案1】:

不,您不必在目标机器上安装数据库服务器; Derby 在嵌入式模式下工作得很好,无需单独的服务器。

但是,如果您希望多个客户端应用程序主动共享同一个数据库中的相同数据,您将需要使用客户端-服务器模式,而不是嵌入式模式。

是的,您可以将带有数据库的 jar 嵌入到您的程序中。如果您想知道如何操作,请阅读此文档:http://db.apache.org/derby/docs/10.11/devguide/cdevdvlp24155.html

是的,您可以将 Derby 用于大型项目。但它并不具备真正的企业级商业 DBMS 所具备的所有企业功能(在线备份等)。

但是,由于您似乎刚刚开始使用 Derby,我是否建议您在尝试这些高级配置之前先从 Derby 教程开始?这是 Derby 教程的链接:http://db.apache.org/derby/docs/10.11/getstart/

如果不深入了解您尝试构建的应用程序和您尝试使用的整体架构,可能无法为您提供非常好的建议。

【讨论】:

  • 我不同意嵌入式 Derby 可用于大型项目的暗示声明。首先,它可怕地扩展是轻描淡写的。其次,进行备份充其量是繁琐的。最后但并非最不重要的一点是远程访问,对于 3 层架构来说是强制性的,这根本是不可能的。
  • 是的,使用 Derby 也有很多不成功的方法。很抱歉你迷路了其中的一些。也许您需要一些帮助?但是,当然,如果您不想使用 Derby,没有人会强迫您使用。
  • 别误会我的意思:Derby 是一个真棒工具。我一直将它用于集成测试,并将它用于较小的项目和作为备用数据库。它已经证明了自己的方式,通常方式。但对于大型项目(多层/多台机器),嵌入式 Derby 并不是上文详述的最佳选择。
  • @Bryan Pendleton 非常感谢我阅读本文的链接。但我不明白如何在其他机器上进行配置。您是否有任何视频链接或代码示例可以帮助我理解。
  • 在客户端/服务器配置中,您在服务器机器上运行网络服务器,在每台客户端机器上运行客户端应用程序。它们使用 TCP/IP 套接字进行通信。机器之间必须有 TCP/IP 连接。客户端机器必须为服务器指定正确的网络地址(不是“localhost”)。这是一个很好的起点:db.apache.org/derby/docs/10.11/adminguide/cadminov825266.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 2017-09-28
  • 1970-01-01
相关资源
最近更新 更多