Saltar al contenido

ResultSet cómo ponerlo en una ArrayList

Solución:

Un ResultSet no es una ArrayList. Más bien, es un objeto especial (Interfaz) para contener los datos recuperados por consultas a través de conexiones JDBC.

Un objeto ResultSet no se puede actualizar y solo se puede recorrer hacia adelante … no hacia atrás. De forma predeterminada, solo puede recorrerlo una vez, desde la primera fila hasta la última (aunque con un poco de codificación, puede generar un objeto ResultSet que se puede editar y recorrer bidireccionalmente).

Los registros almacenados dentro de un objeto ResultSet se pueden colocar fácilmente dentro de una ArrayList. A continuación, se muestra un ejemplo de cómo puede hacer esto:

Connection con = ... ;
Statement stmt = ... ;
ResultSet results = stmt.executeQuery("..."); 

//Stores properties of a ResultSet object, including column count
ResultSetMetaData rsmd = results.getMetaData(); 
int columnCount = rsmd.getColumnCount();

ArrayList<String> hotelResultList = new ArrayList<>(columnCount); 
while (results.next()) {              
   int i = 1;
   while(i <= columnCount) {
        hotelResultList.add(results.getString(i++));
   }
}

NOTA: Este ejemplo asume que se devuelve una sola cadena en la consulta, como el nombre de un hotel. Es probable que desee almacenar varios datos sobre cada hotel, en cuyo caso crearía un objeto “Hotel” y luego crearía ArrayList como una lista de objetos Hotel. Mediante el uso de un mapa de filas, cada objeto de hotel se puede completar con los datos asociados.

Además, el uso de uno de los marcos JDBC más populares para manejar conexiones, consultas y conjuntos de resultados JDBC puede simplificar aún más el proceso.

¡Te ayudaré :)! Cree las variables necesarias en la clase, vea mi ejemplo 🙂

public class HotelData {
    private String hotelName = null;
    private int hotelTelephone = 0;

    public HotelData(String hotelName, int hotelTelephone) {
    this.hotelName = hotelName;
    this.hotelTelephone = hotelTelephone;
    }
}

Ahora crea ArrayList:

public ArrayList<HotelData> hotelResult = new ArrayList<HotelData>();

Con el método while ahora:

while(result.next()) {
    hotelResult.add(new HotelData(result.getString("Enter columnname"), result.getInt("Enter colummname")));
}

Espero que esto te ayude amigo :)! Si necesita obtener los datos de ArrayList, simplemente puede escribir sus propios métodos de obtención en la clase HotelData.

No, ResultSet no se considera una ArrayList sino una tabla. Si hotelResult, por ejemplo, tiene el tipo de Cadena, puede completar la lista con este fragmento de código (si la columna del ResultSet es una Cadena).

while(result.next()) {
  hotelResult.add(result.getString("Enter the columnname here");
}

Para cada tipo de datos hay un método para obtener el valor del ResultSet. Busque en la API de Java los diferentes tipos de métodos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *