gpt4 book ai didi

java - 如何以编程方式发现本地网络上的数据库

转载 作者:行者123 更新时间:2023-12-02 00:24:33 26 4
gpt4 key购买 nike

我正在开发一个项目,该项目需要自定义“向导”来帮助非技术用户安装自定义数据库驱动的应用程序。主要关注的是,如果已经有合适的数据库引擎,则不要为自定义应用程序设置新数据库。那么问题来了:如何以编程方式检测现有数据库引擎的类型和位置?

这里的技巧是,安装程序的要求是向导帮助非技术用户确定兼容性列表上的本地专用网络上是否存在数据库引擎。如果是这样,请帮助非技术用户建立与所选数据库引擎的连接。否则向导将安装数据库等。

无论现有的数据库场景如何,只安装首选的 DBMS 会更好吗?该平台是一个 Windows 盒子,但平台独立性是该项目的目标。

我不知道我是否只是使用了错误的搜索词,或者是否几乎没有真正的信息来实现这一效果,但找出这是否可能是令人沮丧的。

任何帮助、建议、链接、代码资源等都将不胜感激。

编辑 检测现有数据库的位置和类型的目标是提供一个简单的列表,用户可以从中进行选择,以适应在专用网络上添加应用程序的附加实例的情况适用于当前版本或作为版本的升级(以实现“全新”安装)。该应用程序有点分布式,因为通常会有许多应用程序实例 (3 - 10) 作为终端与数据库交互,以不同的方式操作信息以在不同终端上实现不同的用途。我认为首选的 DBMS 已确定为 PostgreSQL。

  • 史蒂夫

最佳答案

如果您知道要尝试连接的数据库类型,则应该能够 ping 该类型数据库的默认端口,以查看它是否返回响应。或者,尝试打开与数据库的实际连接并查看是否收到响应。

变得更复杂,如果您可以访问网络上的 PC,请浏览到数据库类型的默认安装目录以查看是否存在任何内容。

到目前为止,这两个要求使用默认位置和端口安装数据库。

变得更复杂,如果您可以连接到删除的 PC 上的注册表,那么您可能可以在注册表树中找到数据库 - 无论用户将数据库安装在何处,这都将得到修复

<小时/>

我的建议可能是完全避免这种情况,因为它增加了很多复杂性,而且没有太多返回。如果您的应用程序面向非技术最终用户,那么最好假设他们没有任何可用的数据库,然后在安装程序中安装一个新数据库。如果您向非技术用户提供一整套对他们来说实际上没有任何意义的数据库选项,他们只会感到困惑。

查询您的本地网络也可能需要很长时间,具体取决于存在的网络共享数量以及它们的响应速度。所有这些都会影响安装程序的响应能力,因此最终用户可能不知道为什么安装程序不执行任何操作。

如果您确实想提供选择现有数据库的选项,我会将其设置为一个单独的可选按钮,该按钮会将他们带到另一个屏幕,在那里他们可以选择要调查的网络主机 - 唯一可以访问的人这个屏幕将是更多技术人员,他们可能知道数据库存在的位置。

关于java - 如何以编程方式发现本地网络上的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10280662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com