获取 Java 中 SQLite 的结果集大小
Get the size of a ResultSet in Java for SQLite
我正在尝试获取 ResultSet 的大小。现在因为我使用的是 SQLite,而 SQLite 只支持 TYPE_FORWARD_ONLY 游标,所以我想弄清楚如何在不引发错误的情况下获取它的大小。这行不通:
int size = 0;
rs.last();
size = rs.getRow();
我也不能使用准备好的语句将光标更改为可滚动。有没有办法得到尺寸?
我也试过创建一个 while 循环方法来处理这个问题,但它似乎仍然不起作用
public static int getResultSetSize(ResultSet rs) throws SQLException{
int size = 0;
while(rs.next()){
size++;
}
return size;
}
如有任何帮助,我们将不胜感激。
编辑:
我尝试了以下但没有成功
ResultSet rs = DBHelpers.getResultSet("SELECT COUNT(*) FROM USERS;");
int count = 0;
try {
count =rs.getInt(0) ;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
辅助方法如下:
public static ResultSet getResultSet(String sql){
ResultSet rs = null;;
try (Statement stmt = conn.createStatement()){
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
System.out.println(e.getMessage());
return null;
}
return rs;
}
Conn 是在程序其他地方初始化的静态连接变量,指向正确的数据库,它没有引起任何问题。
对同一查询的数据库进行计数...SELECT Count(*) your query...
。
运行 在您进行查询之前,您应该知道结果集的大小。
您应该将结果映射到一个实体。创建这些实体的列表,然后简单地获取列表的大小。
如果您只需要尺寸和尺寸,则只需查询 return 原始查询结果的计数。
该列从索引 1 开始。
试试这个...
从查询中删除分号
ResultSet rs = DBHelpers.getResultSet("SELECT COUNT(*) FROM USERS");
然后
while (rs.next()) {
System.out.println(rs.getInt(1));
}
而不是
count =rs.getInt(0);
我正在尝试获取 ResultSet 的大小。现在因为我使用的是 SQLite,而 SQLite 只支持 TYPE_FORWARD_ONLY 游标,所以我想弄清楚如何在不引发错误的情况下获取它的大小。这行不通:
int size = 0;
rs.last();
size = rs.getRow();
我也不能使用准备好的语句将光标更改为可滚动。有没有办法得到尺寸?
我也试过创建一个 while 循环方法来处理这个问题,但它似乎仍然不起作用
public static int getResultSetSize(ResultSet rs) throws SQLException{
int size = 0;
while(rs.next()){
size++;
}
return size;
}
如有任何帮助,我们将不胜感激。
编辑:
我尝试了以下但没有成功
ResultSet rs = DBHelpers.getResultSet("SELECT COUNT(*) FROM USERS;");
int count = 0;
try {
count =rs.getInt(0) ;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
辅助方法如下:
public static ResultSet getResultSet(String sql){
ResultSet rs = null;;
try (Statement stmt = conn.createStatement()){
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
System.out.println(e.getMessage());
return null;
}
return rs;
}
Conn 是在程序其他地方初始化的静态连接变量,指向正确的数据库,它没有引起任何问题。
对同一查询的数据库进行计数...SELECT Count(*) your query...
。
运行 在您进行查询之前,您应该知道结果集的大小。
您应该将结果映射到一个实体。创建这些实体的列表,然后简单地获取列表的大小。
如果您只需要尺寸和尺寸,则只需查询 return 原始查询结果的计数。
该列从索引 1 开始。 试试这个...
从查询中删除分号
ResultSet rs = DBHelpers.getResultSet("SELECT COUNT(*) FROM USERS");
然后
while (rs.next()) {
System.out.println(rs.getInt(1));
}
而不是
count =rs.getInt(0);