Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以编程方式发现本地网络上的数据库_Java_Database Connection - Fatal编程技术网

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

Java 如何以编程方式发现本地网络上的数据库,java,database-connection,Java,Database Connection,我正在进行一个项目,该项目需要一个自定义“向导”来帮助非技术用户安装自定义数据库驱动的应用程序。主要的问题是,如果已有合适的数据库引擎,则不要为自定义应用程序设置新的数据库。因此问题来了:如何以编程方式检测现有数据库引擎的类型和位置 这里的诀窍是,对安装程序的要求是,向导帮助非技术用户确定兼容性列表中的本地专用网络上是否存在数据库引擎。如果是,请协助非技术用户建立与所选数据库引擎的连接。否则,向导将安装数据库等 不管现有数据库场景如何,只安装首选DBMS是否更好?该平台是一个windows机箱,

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

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

不管现有数据库场景如何,只安装首选DBMS是否更好?该平台是一个windows机箱,但平台独立性是该项目的目标

我不知道我是否只是使用了错误的搜索词,或者是否有很少或没有真正的信息来达到这种效果,但发现这是否可能是令人沮丧的

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

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

  • 史蒂夫

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

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

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

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


不过,我的建议可能是完全避免这种情况,因为它增加了很多复杂性,而没有多少回报。如果您的应用程序针对的是非技术性的最终用户,那么最好假设他们没有任何可用的数据库,并在安装程序中安装一个新的数据库。如果您向非技术用户提供一系列对他们来说毫无意义的数据库选项,那么他们只会感到困惑

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


如果您真的希望提供选择现有数据库的选项,我会将它设置为一个单独的可选按钮,它会将他们带到另一个屏幕,在那里他们可以选择一个网络主机进行调查-唯一会进入此屏幕的人可能是更专业的人,他们可能知道数据库存在于何处。

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

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

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

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


不过,我的建议可能是完全避免这种情况,因为它增加了很多复杂性,而没有多少回报。如果您的应用程序针对的是非技术性的最终用户,那么最好假设他们没有任何可用的数据库,并在安装程序中安装一个新的数据库。如果您向非技术用户提供一系列对他们来说毫无意义的数据库选项,那么他们只会感到困惑

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

如果你真的想选择一个现有的数据库,我会让它成为一个单独的可选按钮,它会将他们带到另一个屏幕,在那里他们可以选择一个网络主机进行调查-唯一会进入这个屏幕的人将是更多的技术人员,他们可能知道数据库存在于何处

主要的问题是,如果已有合适的数据库引擎,则不要为自定义应用程序设置新的数据库

我不太明白向导如何确定现有数据库是否合适。假设它找到3个甲骨文a