如何更改连接访问的默认数据库?例如,我试图获取连接到的SQL服务器中的每个表的列表:List list = new ArrayList();for (String db: dbList) {conn.prepareStatement(use [+db+]).executeQuery();//THIS LINE I...
如何更改连接访问的默认数据库?例如,我试图获取连接到的SQL服务器中的每个表的列表:
List list = new ArrayList();
for (String db: dbList) {
conn.prepareStatement("use ["+db+"]").executeQuery();//THIS LINE ISNT WORKING D:
DatabaseMetaData md = conn.getMetaData();
rs = md.getTables(null, null, "%", null);
while (rs.next())
list.add(rs.getString(3));
}
return list;
不起作用的行会引发此错误:
com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a result set.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:171)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:394)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:283)
不能为每个db创建新连接.
解决方法:
你不能使用executeQuery(),你需要使用execute()(错误信息会给你一个很好的提示).使用PreparedStatement在这里也没有意义.
您还应该存储创建的Statement的实例,以便能够正确关闭它:
Statement stmt = conn.createStatement();
stmt.execute("use [" + db + "]");
stmt.close();
另一个(便携式)选项是使用Connection.setCatalog() – 但我不是100%确定Microsoft是否支持
编程基础网
本文标题为:java – 更改jdbc sql server连接中的数据库
基础教程推荐
猜你喜欢
- 一文带你解读所有HashMap的面试题 2023-05-08
- springboot vue接口测试前后端树节点编辑删除功能 2022-11-19
- 设置session有效时间的三种方式 2023-07-15
- Java躲不过设计模式的坑之代理模式详解 2023-05-13
- Spring Cloud详细讲解zuul集成Eureka流程 2023-01-29
- 关于@RequestLine的使用及配置 2023-02-10
- jpa使用注解生成表时无外键问题及解决 2023-01-24
- 在SpringBoot项目中整合拦截器的详细步骤 2023-05-13
- 使用JSP制作一个超简单的网页计算器的实例分享 2023-08-02
- 高效数据传输的秘密武器Protobuf的使用教程 2023-07-15
