与 sql server 2014 的无效对象名称 jdbc 连接
Posted
技术标签:
【中文标题】与 sql server 2014 的无效对象名称 jdbc 连接【英文标题】:Invalid Object Name jdbc connection with sql server 2014 【发布时间】:2016-05-25 20:00:44 【问题描述】:我从 2 天开始一直在寻找解决方案并尝试了所有方法,但我仍然无法解决我面临的问题。 问题:无效的对象名称“信息”
package test;
import java.sql.*;
public class DataConn
public static void main(String arg[])
try
//Load JDBC driver
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//Establish connection
String url = "jdbc:sqlserver://localhost\\SQL2014:1433;databaseName=Test;integratedSecurity=true";
Connection con = DriverManager.getConnection(url);
System.out.println("Connection success");
//fetch data from Info
Statement st = con.createStatement();
String sql = "SELECT * FROM Info";
ResultSet rs = st.executeQuery(sql);
//extract
while(rs.next())
String Name = rs.getString("Name");
String Class = rs.getString("Class");
int age = rs.getInt("Age");
System.out.println("Name: "+Name +"\t"+"Class: "+Class+"\t"+"Age: "+age);
rs.close();
con.close();
catch(Exception e)
System.err.println("Got an Exception!");
System.out.println(e.getMessage());
输出:
Connection success
Invalid object name 'Info'.
Got an Exception!
我正在使用 Eclipse 和 Sql server 2014,我尝试了大部分的东西,比如: 1. [数据库名称].[dbo].[信息] 2.Test.dbo.Info
但我最终得到了同样的错误:无效的对象名称
这是 SqlServer 2014 的截图:
【问题讨论】:
从错误消息中可以看出,“Info”不是数据库中某个表的名称。仔细检查表名的大小写。 【参考方案1】:这里的对象信息是您要查询的表。请务必检查以下内容 1.确保表存在于模式“TEST”上,当然也确保模式存在。该表可能位于默认架构上。 2.确保用户对该表具有权限 3.确保结果集列与表方案匹配
由于数据库连接成功,我只怀疑架构上不存在该表。您可以尝试使用默认架构。
【讨论】:
我检查了我知道的截图。 Scheme 是“dbo”,表名是“Info”,数据库名是“Test”。【参考方案2】:连接成功表明您没有任何名为“Info”的模式。检查 sql 数据库中的表名。
【讨论】:
请看截图,或许你就知道问题所在了。 可以添加jdbc访问表的权限吗?你可以参考msdn.microsoft.com/en-us/library/ms187797.aspx以上是关于与 sql server 2014 的无效对象名称 jdbc 连接的主要内容,如果未能解决你的问题,请参考以下文章
使用临时表时 SQL Server 显示“无效的对象名称 '#temp'”
SQL Server 触发器:在区分大小写的数据库中“插入”的对象名称无效
SQL Server 上表包含点时生成错误的 FROM 子句导致 Sqoop 无效对象名称错误
SqlException:在 C# (VISUAL STUDIO) 和 sql server 中构建网站时出现无效的对象名称错误