【发布时间】:2017-03-17 04:25:23
【问题描述】:
这是我的代码:
ResultSet res = con.query("USE VSM; SELECT max(EmailTime) FROM Emails;");
if( ! res.next()) { lastEmailTime = new Date(0); } // if table empty set last email time to 1970
else { lastEmailTime = SQLServer.sdf.parse(res.getString(1)); } //SQL is 1-indexed
我的表目前是空的,但 else 语句中的代码正在运行。我知道这一点是因为我得到一个关于它试图访问 res.getString(1) 的空指针异常。为什么它不符合 if 条件??
【问题讨论】:
-
里面有
USE VSM;看起来很奇怪。可以试试去掉吗? -
一次只能执行一条语句。我不认为 USE 可以与 JDBC 一起使用。如果需要指定默认模式,则需要为表名添加前缀:SELECT max(EmailTime) FROM VSM.Emails
-
哇,好吧。我怎么知道它会使用正确的数据库呢?
-
正如我刚才提到的,表前缀:) VSM.Emails
-
我怎么知道它会使用正确的数据库你可以在你的连接 url 上指定数据库
标签: java sql sql-server jdbc resultset