我使用了一个返回固定行数的ResultSet
。我的代码大概是这样的:
ResultSet res = getData();
if(!res.next())
{
System.out.println("No Data Found");
}
while(res.next())
{
// code to display the data in the table.
}
有没有方法可以检查ResultSet
返回的行数?还是我必须自己写?
我使用了一个返回固定行数的ResultSet
。我的代码大概是这样的:
ResultSet res = getData();
if(!res.next())
{
System.out.println("No Data Found");
}
while(res.next())
{
// code to display the data in the table.
}
有没有方法可以检查ResultSet
返回的行数?还是我必须自己写?
ResultSet resultSet;
resultSet = doQuery(something, somethingelse);
KiransTableModel myTableModel = new KiransTableModel(resultSet);
JTable table = new JTable(KiransTableModel);
int rowCount;
rowCount = table.getRowCount;
这是我的解决方案
ResultSet rs=Statement.executeQuery("query");
int rowCount=0;
if (!rs.isBeforeFirst())
{
System.out.println("No DATA" );
} else {
while (rs.next()) {
rowCount++;
System.out.println("data1,data2,data3...etc..");
}
System.out.println(rowCount);
rowCount=0;
rs.close();
Statement.close();
}
PreparedStatement ps = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
2) 获取总行数。以下代码片段说明如何实现:
ResultSet rs = ps.executeQuery();
rs.last();
int totalRowsResult = rs.getRow();
PS:如果查询结果的记录数过多,您可能会因为出现异常而在Java服务器上耗尽内存:java.lang.OutOfMemoryError: Java堆空间。当执行rs.last()方法时,将会出现此异常。
3)再次访问ResultSet,您将不会收到消息:结果集已用完。因此,您需要将结果集重置到顶部,使用rs.first()或rs.absolute(1)。以下代码片段说明了如何实现:
rs.first();
System.out.println(rs.getString(1));
您可以按以下方式使用 res.previous()
:
ResulerSet res = getDate();
if(!res.next()) {
System.out.println("No Data Found.");
} else {
res.previous();
while(res.next()) {
//code to display the data in the table.
}
}