Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 您可以使用JDBC只连接一个实例而不指定数据库吗?_Java_Sql Server_Jdbc - Fatal编程技术网

Java 您可以使用JDBC只连接一个实例而不指定数据库吗?

Java 您可以使用JDBC只连接一个实例而不指定数据库吗?,java,sql-server,jdbc,Java,Sql Server,Jdbc,我正在开发一个JAVA应用程序,它评估实例上所有数据库的数据和日志大小,并发送月度报告。我目前正在使用SQLServer2014。我使用的SQL查询通过查询sys.master_文件来计算所有数据库的大小 问题在于,使用JDBC进行查询时,它会返回错误: java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost" 我已经尝试连接到特定的数据库,效果很好。有没有办法使用JDBC

我正在开发一个JAVA应用程序,它评估实例上所有数据库的数据和日志大小,并发送月度报告。我目前正在使用SQLServer2014。我使用的SQL查询通过查询sys.master_文件来计算所有数据库的大小

问题在于,使用JDBC进行查询时,它会返回错误:

java.sql.SQLException: No suitable driver found for jdbc:microsoft:sqlserver://localhost"
我已经尝试连接到特定的数据库,效果很好。有没有办法使用JDBC直接查询sys.master_文件?还是有一种更聪明的方法可以达到同样的效果

谢谢,您的“找不到合适的驱动程序”错误只是由于连接URL格式不正确所致<代码>jdbc:microsoft:sqlserver无效

至于在不指定特定数据库的情况下连接到实例,这对我来说很好:

//NB:下面的代码中未指定数据库名称
字符串connectionUrl=“jdbc:sqlserver://localhost;instanceName=SQLEXPRESS;integratedSecurity=true”;
try(Connection conn=DriverManager.getConnection(connectionUrl)){
String sql=“从sys.master\u文件中选择名称,其中键入\u desc='ROWS'按数据库\u id排序”;
试一试(
语句st=conn.createStatement();
结果集rs=st.executeQuery(sql)){
while(rs.next()){
System.out.println(rs.getString(1));
}
}
}捕获(例外e){
e、 printStackTrace(System.err);
}

请注意,
sys.master_files
是一个在所有数据库中都可用的系统视图,因此在调用当前数据库(目录)时,它并不重要。

通常,在部署应用程序时,会知道与应用程序一起运行的RDBMS。你能详细解释一下为什么你认为你需要这个吗?你的URL是错误的,SQL Server的正确URL以
jdbc:sqlserver:
开头,而不是
jdbc:microsoft:sqlserver:
;查看正确的URL;根据该文档,数据库名称是可选的(然后它将连接到默认数据库)。