gpt4 book ai didi

java - 使用jdbc我使用oracle plsql函数来检索结果集,它没有给我java中的所有记录

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:44 25 4
gpt4 key购买 nike

    CallableStatement stmt = null;
String sql = "begin ? := TEST.USER_LIST.queryByUser(?,?,?,?); end;";
ResultSet rs = null;
try {
stmt = conn.prepareCall(sql);
stmt.registerOutParameter(1, OracleTypes.CURSOR);
stmt.setString(2, "user1"); stmt.setInt(3, 1); // offset
stmt.setString(4, "Update_Date"); stmt.setString(5, "DESC");
stmt.execute();
if(stmt.getObject(1)==null) {
System.out.println("Null value");
} else {
rs = (ResultSet) stmt.getObject(1);
int i = 0;
while (rs.next()) { i++; }
System.out.println("rs size: " +i);
stmt.close();
rs.close();
}
} catch (Exception ex) {
} finally {
try { rs.close(); stmt.close();
} catch (Exception ex) {}
}

输出:RS 尺寸:19

问题:此代码返回的总行数比数据库中的行数少 10 行如果数据库中有 50 行,则显示 40,如果 30,则显示 20,如果 9,则显示 0。

最佳答案

  • 您需要 ResultSet (rs) 类型之一:ResultSet.TYPE_SCROLL_INSENSITIVEResultSet.TYPE_SCROLL_SENSITIVE 才能正常工作
  • 通常,您会从 rs.beforeFirst() 开始计算 ResultSet,以便计算第一个元素。
<小时/>
int size = 0 ;
if (rs != null){
rs.beforeFirst();
rs.last();
size = rs.getRow();
}

我的建议是在存储过程中创建一个 SELECT COUNT(*)

关于java - 使用jdbc我使用oracle plsql函数来检索结果集,它没有给我java中的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34175601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com