Bonjour, je suis actuellement en stage, et on m'a demandé de concevoir un connecteur entre 2 bases de données.En ce moment j'essai de concevoir une methode de mise à jour, c'est-à-dire, qu'il ya une base(entrepot) possédant toutes les tables des autres bases, et que cette base doit être mise à jour quand on modifie une des tables des autres bases. Si quelqu'un pouvait m'aider je lui en serait reconnaissant.Ainsi j'aimerais pouvoir mettre à jour toutes les tables de cette entrepot.
voici ce que j'ai fait jusqu'à present:
Pourriez-vous me dire ce qu'il ne va pas dans mon code?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public void updateLigne(String Entrepot) throws Exception{ Base b=null; Base c=null; // La classe Base a été défini try{ Set<String> s=new TreeSet<String>(); Iterator<Base> it=m.values().iterator(); // m est un map<Table,Base> associant à chaque table la base à laquelle elle appartient. //La classe Table a aussi été définie. c=client.getBase(Entrepot); while(it.hasNext()){ String g=it.next().getNom(); if(g.equals(Entrepot)==false) //je récupère le nom de toutes les Bases sauf celle à mettre à jour. {s.add(g); } } Iterator<String> iter=s.iterator(); while(iter.hasNext()){ String f=iter.next(); b=client.getBase(f); Iterator<Table> i=b.iterator(); //parcours des tables de chacune de ces bases. while(i.hasNext()){ Table t=i.next(); Table t1=client.getTable(Entrepot,t.getNom()); String recup="SELECT * FROM "+t.getNom(); Statement stmt=b.getConnexion().createStatement(); ResultSet r=stmt.executeQuery(recup); Statement stmt2=c.getConnexion().createStatement(); ResultSet r2=stmt2.executeQuery(recup); ResultSetMetaData rm=r.getMetaData(); ResultSetMetaData rm2=r2.getMetaData(); while((r.next())&&(r2.next())){ for(int a=1;a<=rm.getColumnCount();a++){ if(r.getString(a).equals(r2.getString(a))==false){ // s'il ya une différence entre les 2 tables ,celle de la base entrepot est modifiée. r2.updateString(a,r.getString(a)); } } } } } } catch(Exception e) { System.err.println("\n*** Exception caught in updateLigne()"); throw e; } }
S'il ya des question posez-les moi.
Partager