2009-04-22 8 views

Répondre

4

Vous devez utiliser: isLast() à la place.

Soyez averti, tous les pilotes JDCB ne prennent pas en charge cette fonctionnalité. Évidemment, vous devez le vérifier avec votre installation.

La plupart des principaux travaux de DB fonctionnent bien.

Le code fixe devrait ressembler à ceci.

if(rs.isLast()) { 
    // do last record processing 
} 
2

Personnellement, je déclarerais les variables qui sont extraites de la requête en dehors de la boucle, puis faire le « dernier traitement d'enregistrement » après la boucle.

ResulSet rs = stmt.executeQuery(); 
long primaryKey; 

while (rs.next()) { 
    primaryKey = rs.getLong(1); 
    .... //do regular processing 
} 

// Do last record processing. 
System.out.println("last primary key = " + primaryKey); 
2

No: rs.last() va effectivement envoyer le curseur sur la dernière ligne du ResultSet, ce qui est certainement pas ce que vous voulez faire. Vous ne traiterez jamais que 2 lignes au maximum (premier et dernier) du jeu de résultats.

Questions connexes