6
votes

Comment comparer les valeurs de deux résultatsset en Java

J'ai deux tables. Et ces tables ont le même schéma composé d'IDERID, nom d'utilisateur. Je veux vérifier s'il existe un nom d'utilisateur commun dans Table1 et table2 . xxx

Ma logique est:

  • tandis que (rs1.next ())
  • Comparez la valeur de RS1 avec chaque valeur de RS2 .
  • si correspondre à la correspondance Imprimer une des valeurs ele Imprimez les deux valeurs.

    Y a-t-il un moyen d'y parvenir à Java ... s'il vous plaît n'importe qui aidez-moi ... merci ...


0 commentaires

6 Réponses :


4
votes

J'utiliserais une instruction SQL unique:

select table1.username from table1, table2 where table1.username = table2.username


0 commentaires

0
votes

pseudo-code: xxx


0 commentaires

0
votes

Vous pouvez le résoudre via l'instruction SQL dans et non dans ou que vous pouvez essayer quelque chose comme ceci:

public boolean compareResultSets(ResultSet resultSet1, ResultSet resultSet2) throws SQLException{
        while (resultSet1.next()) {
            resultSet2.next();
            ResultSetMetaData resultSetMetaData = resultSet1.getMetaData();
            int count = resultSetMetaData.getColumnCount();
            for (int i = 1; i <= count; i++) {
                if (!resultSet1.getObject(i).equals(resultSet2.getObject(i))) {
                    return false;
                }
            }
        }
        return true;
    }


0 commentaires

0
votes

Je donne un exemple pour résoudre ce problème: xxx


0 commentaires

0
votes

Une solution pourrait être: -

String query = "(" + query1 +") intersect ("+ query2 + ")";


0 commentaires

-1
votes

Cette réponse est déjà donnée par Akash5288 et édité par Pavel Smirnov. Et cela a fonctionné pour moi comme la magie. Je n'ai pas accès à aimer ou à commenter la réponse originale, c'est pourquoi je le pose à nouveau. Merci beaucoup. Juste une édition de mon côté: rs2.befirst (); fonctionnera mieux que rs2.first (); .

Je donne un exemple pour résoudre ce problème: xxx


0 commentaires