我的总线表是空的,我正在尝试检查记录是否存在,但程序检索始终为true并跳转到真正的语句?!我已经尝试过SELECT COUNT(*) FROM bus
我遇到了同样的问题。
boolean records = stt.execute("SELECT EXISTS(SELECT 1 FROM bus) ");
if (records) {
//It is always jumping here.
return insertRecord(mac, route, latD, longD, status, con);
} else {
// The table exist without records.
stt.execute("ALTER TABLE bus AUTO_INCREMENT = 1");
return insertRecord(mac, route, latD, longD, status, con);
}
修改 我收到此错误,但如果删除这些行,一切正常。
Servlet [Jersey Web Application]的Servlet.service()在路径[/ serverSide]的上下文中引发了带有根本原因的异常[java.lang.NullPointerException]
PreparedStatement recordPrep = con
.prepareStatement("SELECT COUNT(1) FROM bus");
ResultSet rs = recordPrep.getResultSet();
if (rs.next()) {
return insertRecord(mac, route, latD, longD, status, con);
} else {
// The table exist without records.
stt.execute("ALTER TABLE bus AUTO_INCREMENT = 1");
return insertRecord(mac, route, latD, longD, status, con);
}
答案 0 :(得分:0)
execute(String)
method不返回第一行的boolean
值,它会告诉您是否有行。
execute方法执行SQL语句并指示第一个结果的形式。然后,您必须使用方法getResultSet或getUpdateCount来检索结果,并使用getMoreResults移动到任何后续结果。
返回:
如果第一个结果是ResultSet对象,则为true;如果是更新计数或没有结果,则为false
相反,请使用ResultSet
从Statement
获取getResultSet
,并检查第一行的第一个值(如果存在)。
答案 1 :(得分:0)
如果要检查SELECT COUNT(id) FROM bus
表中是否有任何记录(假设您有bus
列,则应使用id
,如果没有将列名替换为{1}}列你有ID或任何其他专栏)