ResultSet how to put it into a ArrayList

A ResultSet is not an ArrayList. Rather, it is a special object (Interface) to hold data retrieved by queries via JDBC connections.

A ResultSet object cannot be updated, and can only be traversed forward... not back. By default, you can only iterate through it once, from the first row to the last (though with a bit of coding, you can generate a ResultSet object that can be edited and traversed bi-directionally).

The records stored within a ResultSet object can easily be placed within an ArrayList. Here is an example on how you can do this:

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++));
   }
}

NOTE: This example assumes a single String being returned in the query, such as a Hotel name. You will likely want to hold multiple pieces of data about each hotel, in which case you would create a "Hotel" object, and then create the ArrayList as a List of Hotel objects. By using a rowmapper, each hotel object can be populated with the associated data.

In addition, using one of the popular JDBC frameworks to handle JDBC connections, queries, and result sets can simplify the process further.


I will help u out :)! Create the needed variables in the class see my example :)

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

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

Now create the ArrayList:

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

With the while method now:

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

Hope this will help u buddy :)! If u need to get the data from the ArrayList u can simply write ur own get methods in the HotelData class!


No, ResultSet is not considered an ArrayList but rather a table. If hotelResult for example has the type of String you can fill the list with this piece of code(if the column from the ResultSet is a String).

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

For each datatype there is a method to get the value from the ResultSet. Look in the Java API for the different kinds of methods.