Comment savoir si un jeu de résultats est vide ou non en Java? [dupliquer]
cette question a déjà une réponse ici:
Comment puis-je savoir que le ResultSet
, que j'ai obtenu en interrogeant une base de données est vide ou pas?
30
demandé sur
Vaishali
2010-02-25 07:50:21
6 réponses
immédiatement après votre instruction execute, vous pouvez avoir une instruction if. Par exemple
ResultSet rs = statement.execute();
if (!rs.next()){
//ResultSet is empty
}
33
répondu
Paul
2010-02-25 05:42:31
certainement cela donne une bonne solution,
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
}
25
répondu
purush
2013-11-13 03:10:15
Faire cela en utilisant le rs.next()
:
while (rs.next())
{
...
}
si le résultat est vide, le code à l'intérieur de la boucle ne s'exécute pas.
10
répondu
Scott Smith
2010-02-25 04:54:05
si vous utilisez rs.next () vous déplacerez le curseur, que vous devriez déplacer en premier() pourquoi ne pas vérifier directement en utilisant 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();
}
8
répondu
Kachwahed
2011-09-04 18:09:09
if (rs == null || !rs.first()) { //empty } else { //not empty }
notez qu'après cet appel de méthode, si le jeu de résultats n'est pas vide, c'est au début.
4
répondu
Santosh Tiwari
2011-07-01 14:09:30