我无法计算我的sqltable的行数。在MS Studio中仅使用查询工作正常,但是当我在Java中尝试时,我得到一个sql异常:
Connection con = null;
Statement stat = null;
int result = 0;
int i;
try {
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;user=sa;password=123456; databaseName=RPA;");
stat = con.createStatement();
result = stat.executeUpdate("select count(*) FROM RPA_Users");
}catch (SQLException e) {
System.out.println("cannot connect!");
e.printStackTrace();
} finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return result;
有人可以解释一下我做错了什么吗? 提前致谢
编辑:没关系我已经找到了伙计们,感谢你们的帮助! 如果有人有兴趣我的解决方案:result = stat.executeQuery("select count(*) FROM /tablename/");
result.next();
rowCount = result.getInt(1);
答案 0 :(得分:2)
使用executeQuery
代替executeUpdate
发布数据库读取查询
result = stat.executeQuery("select count(*) FROM RPA_Users");
除此之外:考虑Using Prepared Statements
答案 1 :(得分:1)
您正在使用executeUpdate()
进行查询。这不会奏效。
您应该切换到executeQuery()
此方法会返回您需要评估的ResultSet
。
答案 2 :(得分:0)
这是完整的代码:
{
Connection con = null;
Statement stat = null;
ResultSet result = null;
int rowCount = -1;
try {
con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;user=sa;password=123456; databaseName=RPA;");
stat = con.createStatement();
result = stat.executeQuery("select count(*) FROM RPA_Users");
result.next();
rowCount = result.getInt(1);
}catch (SQLException e)
{
System.out.println("cannot connect!");
e.printStackTrace();
}
finally {
if (con != null) {
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return rowCount;
}