¿Cómo puedo encontrar que el ResultSet
, que tengo al consultar una base de datos, está vacío o no?¿Cómo encontrar si un ResultSet está vacío o no en Java?
Respuesta
Inmediatamente después de su instrucción de ejecución, puede tener una instrucción if. Por ejemplo
ResultSet rs = statement.execute();
if (!rs.next()){
//ResultSet is empty
}
calcula el tamaño de la java.sql.ResultSet:
int size = 0;
if (rs != null) {
rs.beforeFirst();
rs.last();
size = rs.getRow();
}
(Source)
Por lo que yo sé, es una mala idea ... en primer lugar, es necesario asegurarse de que el resultado puede moverse hacia atrás, en segundo lugar, se obtener un golpe de rendimiento al hacer eso. Es mucho más rápido usar solo un conjunto de resultados de solo avance, y usar un ciclo while (como ya lo han sugerido otros aquí) – user85116
De acuerdo ... Elegí la respuesta aceptada, que responde a la pregunta mucho más directamente. – Dolph
Dolph - AGRADABLE !!!!! –
Para ello, utilice rs.next()
:
while (rs.next())
{
...
}
Si el conjunto de resultados está vacía, el código dentro del bucle no se ejecutará.
Si utiliza rs.next() va a mover el cursor, lo que debe mover primero() por qué no se comprueba utilizando en primer lugar() directamente?
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();
}
Estoy de acuerdo. Agregué mi código a continuación (no pude incluir el código con el comentario). –
Definitivamente esto da buena solución,
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
}
- 1. Python: compruebe si un archivo está vacío o no
- 2. ¿Cómo encontrar si una matriz json está vacía o no?
- 3. Para verificar si un objeto está vacío o no
- 4. Cómo comprobar si un directorio está vacío en Java
- 5. cómo se comprueba si UIWebView está vacío o no
- 6. Unir coma si no está vacío o nulo
- 7. ¿Cómo verifico si un repositorio está vacío?
- 8. ¿Cómo probar si un DataSet está vacío?
- 9. Desactivar/Activar NSButton si NSTextfield está vacío o no
- 10. ¿Cómo comprobar si el objeto JSON está vacío en Java?
- 11. sesión de Comprobación de si está vacío o no
- 12. ¿Cómo puedo verificar si un JSON está vacío en NodeJS?
- 13. ¿Cómo comprobar si un valor está vacío en Lua?
- 14. Comprueba si un BSTR está vacío
- 15. ¿Cómo verificar si jQuery datepicker está vacío?
- 16. compruebe si NSNumber está vacío
- 17. ¿Verifica si un NSMutableDictionary está vacío?
- 18. Comprobación de si un vector está vacío
- 19. ¿Cómo comprobar si un int no es nulo o está vacío?
- 20. jquery: si ul está vacío
- 21. Mongo Engine - Query - Cómo comprobar si un ListField está vacío o no configurado
- 22. Problema con SQL, ResultSet en java
- 23. ¿Cómo comprobar si UITextFields está vacío?
- 24. AS3: compruebe si un diccionario está vacío
- 25. ¿Cómo comprobar si un archivo está vacío en Bash?
- 26. Detectar si un RichTextBox está vacío
- 27. ¿Cómo comprobar si HTML sessionStorage no está vacío?
- 28. cómo verificar si un hash está vacío en perl
- 29. Unión interna solo si un campo no está vacío
- 30. Cómo comprobar si el cualquiera de mi cuadro de texto está vacío o no en javascript
sin embargo, si el conjunto de resultados no está vacío, ahora habrá movido el cursor, omitiendo la primera fila. – monopoint
@monopoint exactamente – momomo
@Paul Creo que debe actualizar su respuesta para que se complete restableciendo el cursor justo antes de la primera fila en el bloque else si no está vacío, es decir 'else {rs.beforeFirst(); } ' – sactiw