Sql server 是否有用于SQL Server的jdbc驱动程序可以搜索网络上的数据库实例?

Sql server 是否有用于SQL Server的jdbc驱动程序可以搜索网络上的数据库实例?,sql-server,jdbc,Sql Server,Jdbc,是否有用于SQL Server的jdbc驱动程序可以搜索网络上的数据库实例 只是想模仿JDBC驱动程序中的“OSQL-L”。我不想从JNI或其他地方调用OSQL。我也不想为扫描UDP端口编写自己的代码 我希望我的Java应用程序能够搜索实时SQL服务器,并提示我可用服务器的列表。对于JDBC驱动程序来说,这不是一个合理的期望吗?OSQL.exe可以做到这一点,为什么JDBC驱动程序不能做到呢?没有提供任何功能。您的最佳选择是退回到低级Java套接字编程,测试TCP端口1433是否打开,然后尝试连

是否有用于SQL Server的jdbc驱动程序可以搜索网络上的数据库实例

只是想模仿JDBC驱动程序中的“OSQL-L”。我不想从JNI或其他地方调用OSQL。我也不想为扫描UDP端口编写自己的代码

我希望我的Java应用程序能够搜索实时SQL服务器,并提示我可用服务器的列表。对于JDBC驱动程序来说,这不是一个合理的期望吗?OSQL.exe可以做到这一点,为什么JDBC驱动程序不能做到呢?

没有提供任何功能。您的最佳选择是退回到低级Java套接字编程,测试TCP端口1433是否打开,然后尝试连接它

Socket socket = null;
try {
    socket = new Socket("localhost", 1433);
    System.out.println("Service is available!");
} catch (Exception e) {
    System.out.println("Service is not available.");
} finally {
    if (socket != null) try { socket.close(); } catch (IOException logOrIgnore) {}
}
一旦确认该服务可用,您就可以使用URL中没有数据库名称的常规方式连接该服务,并通过获取可用目录(数据库)列表。

不提供任何这方面的功能。您的最佳选择是退回到低级Java套接字编程,测试TCP端口1433是否打开,然后尝试连接它

Socket socket = null;
try {
    socket = new Socket("localhost", 1433);
    System.out.println("Service is available!");
} catch (Exception e) {
    System.out.println("Service is not available.");
} finally {
    if (socket != null) try { socket.close(); } catch (IOException logOrIgnore) {}
}

一旦确认该服务可用,您就可以使用URL中没有数据库名称的常规方式连接该服务,并通过获取可用目录(数据库)的列表。

osql在查找SQL Server实例时实际上相当愚蠢

SSMS、Enterprise Manager等也使用相同的技术,如果SQL框与默认实例不在同一个房间(好的,稍微夸张一点),那么这种技术是不可靠的


你所能做的就是根据源代码推出你自己的。。。我以前使用过这种方法,效果很好。

osql在查找SQL Server实例时实际上相当愚蠢

SSMS、Enterprise Manager等也使用相同的技术,如果SQL框与默认实例不在同一个房间(好的,稍微夸张一点),那么这种技术是不可靠的


你所能做的就是根据源代码推出你自己的。。。我以前也用过,效果很好。

我也试过在JTDS驱动程序论坛上发帖,问这个问题:我只想搜索TCP端口1433。我不需要搜索其他协议上的实例。我也尝试过在JTDS驱动程序论坛上发帖,询问这个问题:我只想搜索TCP端口1433。我不需要搜索其他协议上的实例。