Java PreparedStatement之后非空数据库表的空ResultSet
我编写了一个从表中检索数据的查询,然后使用Java PreparedStatement之后非空数据库表的空ResultSet,java,mysql,jdbc,Java,Mysql,Jdbc,我编写了一个从表中检索数据的查询,然后使用getRow()方法检查结果集中的行数。这是在打印0,但是我的表中包含多行-列数据 我检查了前面的问题,发现其中一个非常相似。但与中提到的不同,我没有定义任何权限,并且与数据库的连接已建立良好。这是一个非常简单的查询,返回可更新的结果集,如下所示: if(temp == null) { query = "SELECT * FROM altemp1"; pstmt = cn
getRow()
方法检查结果集中的行数。这是在打印0
,但是我的表中包含多行-列数据
我检查了前面的问题,发现其中一个非常相似。但与中提到的不同,我没有定义任何权限,并且与数据库的连接已建立良好。这是一个非常简单的查询,返回可更新的结果集,如下所示:
if(temp == null) {
query = "SELECT * FROM altemp1";
pstmt = cn.prepareStatement(query, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
temp = pstmt.executeQuery();
System.out.println("TEMP LENGTH : "+temp.getRow());
}
temp是结果集,altemp1是表格,单位为DB。
上面的检查是否
temp
为空?用于某些逻辑目的。您需要调用ResultSet.next()
并检查返回代码以获取每个连续行,包括第一行,然后需要调用各种其他方法来获取列,其中一个不是getRow()
。根据JavaDoc(),请参见。:
[…getRow()]检索当前行号。第一行是数字1,第二行是数字2,依此类推
getRow
方法不返回结果集中的行数;它返回当前的行号。在示例代码中,执行了查询(prepared语句),但没有从resultset中提取行,因此resultset中的当前行号为0。