summaryrefslogtreecommitdiff
path: root/src/modele/dao/ResultObject.java
blob: 7f91824d6028c4cace3f9842639430180a325e71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package modele.dao;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;

/**
 * conteneur pour ResultSet dans le cas d'un SELECT,
 * les valeurs des HashMap sont des "Object" pour gérer tous les types de données
 */
public class ResultObject
{
    private final ArrayList<HashMap<String, Object>> data = new ArrayList<>();

    /**
     * copie du ResultSet dans une ArrayList composée d'HashMap
     * @param rs instance de ResultSet
     * @throws SQLException en cas d'erreur avec le ResultSet 
     */
    public ResultObject(ResultSet rs) throws SQLException
    {
        ResultSetMetaData metaData = rs.getMetaData();
        int columnCount = metaData.getColumnCount();

        while(rs.next())
        {
            HashMap<String, Object> row = new HashMap<>();
            for (int i = 1; i <= columnCount; i++)
            {
                row.put(metaData.getColumnName(i), rs.getObject(i));
            }
            data.add(row);
        }        
    }

    /**
     * à utiliser dans la boucle permettant de parcourir la liste
     * @return retourne la liste encapsulée
     */
    public ArrayList<HashMap<String, Object>> getData()
    {
        return data;
    }
}