Pau*_*aul 34
在执行语句之后,您可以立即使用if语句.例如
ResultSet rs = statement.execute();
if (!rs.next()){
//ResultSet is empty
}
Run Code Online (Sandbox Code Playgroud)
小智 26
这绝对是一个很好的解决方案,
ResultSet rs = stmt.execute("SQL QUERY");
// With the above statement you will not have a null ResultSet 'rs'.
// In case, if any exception occurs then next line of code won't execute.
// So, no problem if I won't check rs as null.
if (rs.next()) {
do {
// Logic to retrieve the data from the resultset.
// eg: rs.getString("abc");
} while(rs.next());
} else {
// No data
}
Run Code Online (Sandbox Code Playgroud)
Sco*_*ith 10
这样做使用rs.next():
while (rs.next())
{
...
}
Run Code Online (Sandbox Code Playgroud)
如果结果集为空,则循环内的代码将不会执行.
如果你使用rs.next()你将移动光标,而不是你应该先移动()为什么不直接使用first()进行检查?
public void fetchData(ResultSet res, JTable table) throws SQLException{
ResultSetMetaData metaData = res.getMetaData();
int fieldsCount = metaData.getColumnCount();
for (int i = 1; i <= fieldsCount; i++)
((DefaultTableModel) table.getModel()).addColumn(metaData.getColumnLabel(i));
if (!res.first())
JOptionPane.showMessageDialog(rootPane, "no data!");
else
do {
Vector<Object> v = new Vector<Object>();
for (int i = 1; i <= fieldsCount; i++)
v.addElement(res.getObject(i));
((DefaultTableModel) table.getModel()).addRow(v);
} while (res.next());
res.close();
}
Run Code Online (Sandbox Code Playgroud)
如果(rs == null ||!rs.first()){
//空
}其他{
//不是空的
}
请注意,在此方法调用之后,如果结果集不为空,则它在开头。
| 归档时间: |
|
| 查看次数: |
106484 次 |
| 最近记录: |