Comment obtenir le nombre de lignes à l'aide de ResultSet en Java?

Je suis en train de créer une méthode simple qui reçoit un jeu de résultats en tant que paramètre et retourne un int qui contient le nombre de lignes du jeu de résultats. Est-ce là une façon de faire cela ou pas tellement?

int size = 0;
    try {
        while(rs.next()){
            size++;
        }
    }
    catch(Exception ex) {
        System.out.println("------------------Tablerize.getRowCount-----------------");
        System.out.println("Cannot get resultSet row count: " + ex);
        System.out.println("--------------------------------------------------------");
    }

J'ai essayé ceci:

int size = 0;
try {
    resultSet.last();
    size = resultSet.getRow();
    resultSet.beforeFirst();
}
catch(Exception ex) {
    return 0;
}
return size;

Mais j'ai une erreur disant com.microsoft.sqlserver.jdbc.SQLServerException: The requested operation is not supported on forward only result sets.

Merci d'avance pour les pointeurs!

  • Vous pouvez pas modifier l'instruction sql pour SELECT COUNT(*) ...?
  • Pourquoi ne pas faire un "select count(*)" avant de lancer la requête de remplissage de l'objet resultset ? Toutefois jeu d'enregistrements RS dépend de la façon dont vous ouvrez la connexion (il y a quelques paramètres à passer). Regardez votre pilote jdbc de la documentation pour plus de détails.
  • (OT; vous pouvez envisager d'utiliser un enregistrement réel de la bibliothèque qui sera prendre soin des choses comme sortir le nom de la méthode etc.)
InformationsquelleAutor | 2011-10-25