web-dev-qa-db-fra.com

Java, boucle sur l'ensemble de résultats

En Java, j'ai une requête comme celle-ci:

String querystring1= "SELECT rlink_id, COUNT(*)"
                   + "FROM dbo.Locate  "
                   + "GROUP BY rlink_id ";

La table rlink_id contient ces données:

Sid        lid
 3           2
 4           4
 7           3
 9           1

Comment extraire ces valeurs avec un Java ResultSet?

Voici ce que j'ai jusqu'à présent:

String show[] = {rs4.getString(1)};
String actuate[] = {rs4.getString(2)};
asString = Arrays.toString(actuate);
36
user977830
List<String> sids = new ArrayList<String>();
List<String> lids = new ArrayList<String>();

String query = "SELECT rlink_id, COUNT(*)"
             + "FROM dbo.Locate  "
             + "GROUP BY rlink_id ";

Statement stmt = yourconnection.createStatement();
try {
    ResultSet rs4 = stmt.executeQuery(query);

    while (rs4.next()) {
        sids.add(rs4.getString(1));
        lids.add(rs4.getString(2));
    }
} finally {
    stmt.close();
}

String show[] = sids.toArray(sids.size());
String actuate[] = lids.toArray(lids.size());
35
Maurice Perry

Result Set Contient en fait plusieurs lignes de données et utilise un curseur pour indiquer la position actuelle. Donc dans votre cas, rs4.getString(1) ne vous donne que les données de la première colonne de la première ligne. Pour passer à la ligne suivante, vous devez appeler next()

un exemple rapide

while (rs.next()) {
    String sid = rs.getString(1);
    String lid = rs.getString(2);
    // Do whatever you want to do with these 2 values
}

il existe de nombreuses méthodes utiles dans ResultSet, vous devriez jeter un oeil :)

14
Rangi Lin