Bonjour à tous,


J'aimerais effectuer une comparaison entre des données provenant d'un fichier plat, d'une part, et d'une table de base de données d'autre part. Les deux ont une structure similaire, à savoir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Colonne 1   Colonne 2   ...   Colonne n
 Val 11      Val 12     ...    Val 1n
 Val 21      Val 22     ...    Val 2n
   ...
Dans un premier temps, on considère que l'ordre des colonnes est identique pour la table et le fichier, ainsi que le nombre d'entrées. En pratique, le nombre de colonnes n'est pas supérieur à 20 et le nombre de lignes peut aller jusqu'à 50.

Une combinaison de ces colonnes constitue une clé pour retrouver une ligne particulière.

Alors, pour ce qui est de la partie "extraction" des données, pas de souci à l'aide des classiques java.io.BufferedReader et java.sql.ResultSet.

Par contre, je ne sais pas encore quel est le meilleur objet Java à utiliser pour stocker ces données... Je pensais à deux HashMap dont les KeySet seraient une liste des valeurs formant la clé, et la Value associée serait l'ensemble (Collection par exemple) des autres valeurs.

Idéalement, l'affichage des différences ressemblerait à ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
               Fichier  Table
- Ligne X
   Colonne 1    valX1   valX1
   Colonne 2    valX2   valX2
     ...
   Colonne n    valXn   valXn

- Ligne Y
   Colonne 1    valY1   valY1
   Colonne 2    valY2   valY2
     ...
   Colonne n    valYn   valYn
   ...
ou les valeurs valX2, valY1 et valYn du fichier diffèrent de celles trouvées dans la table.

Est-ce que mon choix vous semble le bon ???