【发布时间】:2012-10-17 16:07:30
【问题描述】:
我尝试了不同的方法来获取 java JDBC 中的行数,但似乎没有一个给出正确的结果。我做错了什么吗?
即使客户表是空的并且我应该将行计数设为 0,但我不明白为什么我会得到一个非零行计数值。
方法一——
query = "SELECT * FROM customer WHERE username ='"+username+"'";
rs = stmt.executeQuery(query);
ResultSetMetaData metaData = rs.getMetaData();
rowcount = metaData.getColumnCount();
方法二——
query = "SELECT * FROM customer WHERE username ='"+username+"'";
rs = stmt.executeQuery(query);
rowcount = rs.last() ? rs.getRow() : 0;
【问题讨论】:
-
您应该执行
COUNT语句:String query = "SELECT COUNT(*) FROM customer WHERE username =?"; stmt.setString(1, username); rs = stmt.executeQuery(query); -
方法 1 获取列数 - 为什么您认为这可能有效?
-
附带问题 - 如果您要使用原始非聚合查询中的数据,最好进行第二次查询以获取计数,还是循环并计数更好,或者跳到最后一行并检查 getRow()?似乎第二个查询来获得计数更好,每个 - stackoverflow.com/a/192104/620054