使用JDBC ODBC驱动程序将Java连接到Mssql时
try
{
ps=conn.prepareStatement("UPDATE products SET stock=? WHERE id=?");
ps.setInt(1, prods.getStock());
ps.setInt(2, prods.getId());
int b = ps.executeUpdate();
if(b!=0)
{
System.out.println("success");
}
else
{
System.out.println("Fail");
}
}
catch(SQLException e)
{
System.out.println(e);
}
此catch块会引发此异常
java.sql.SQLException [Microsoft] [ODBC SQL Server Driver]
[SQL Server] Invalid object name 'products'
我从最近2天开始研究这个部分。我将如何解决这个例外?
答案 0 :(得分:5)
无法找到表时抛出此错误消息。这有几个原因:
答案 1 :(得分:1)
我想你的连接字符串没有默认数据库 - 你可能连接到'master',在这种情况下上面的代码不起作用
您可以通过使用数据库和模式名称限定查询来测试这一点:
e.g。
ps=conn.prepareStatement("UPDATE [YourDatabaseName].[schema].products SET stock=? WHERE id=?");
将您的值放在需要的位置(标准默认架构为'dbo',例如ProductsDatabase.dbo.products)
如果这样做,那么您的连接字符串不正确
答案 2 :(得分:0)
通常,如果表不存在,或者连接字符串出错,则抛出此异常。也许没有连接到正确的数据库?
答案 3 :(得分:0)
我遇到了类似的问题。我的问题的原因是运行报告的用户将DEFAULT_DATABASE指向master数据库,在将其更改为正确的数据库后,它能够找到该对象。
谢谢