Problème dans la boucle for
Bonjour,
Mon code ci dessous permet de parcourir une BDD MySQL et en extraire les données. Quand j'ai fait des affichages pour le test j'ai vu qu'il s'arrête à la 1ère table à la 1ère ligne (plus précisément dans la boucle for) il la parcourt une fois.
J'ai beau essayer de remédier à ce problème mais ça ne marche toujours pas, avez vous une idée sur ce que ça pourrai être????
Code:
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
|
import java.io.File;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class DBSyncTools {
private Connection conn;
private Document doc;
public DBSyncTools(String driverName, String serverName,
String dataBaseName, String userName, String passWord)
throws ClassNotFoundException, SQLException,
ParserConfigurationException {
conn = ConnectionFactoryImpl.createConnection(serverName, dataBaseName,
userName, passWord, driverName);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.newDocument();
}
public Document save() throws SQLException, ParserConfigurationException {
try {
Statement stmt;
ResultSet rs;
ResultSetMetaData rsmd;
int colCount = 0;
DatabaseMetaData dbmd = conn.getMetaData();
String[] types = { "TABLE" };
ResultSet resultSet = dbmd.getTables(null, null, "%", types);
Element db = doc.createElement("DB");
doc.appendChild(db);
while (resultSet.next()) {
String tableName = resultSet.getString(3);
System.out.println(tableName);
// Table
Element tab = doc.createElement("Table");
tab.setAttribute("name", tableName);
db.appendChild(tab);
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from " + tableName);
rsmd = rs.getMetaData();
colCount = rsmd.getColumnCount();
int countRows = 0;
while (rs.next()) {
Element row = doc.createElement("Row");
tab.appendChild(row);
for (int i = 1; i <= colCount; i++)
{
String columnName = rsmd.getColumnName(i);
Object value = rs.getObject(i);
Element node = doc.createElement(columnName);
node.appendChild(doc.createTextNode(value.toString()));
row.appendChild(node);
System.out.println(columnName);
}
countRows++;
System.out.println("Ligne: "+countRows);
}
System.out.println("Somme des lignes: "+countRows);
rs.close();
stmt.close();
}
resultSet.close();
// writeXmlFile(doc,"data.xml");
} catch (SQLException e) {
}
System.out.println(doc);
return doc;
}
/*
* private void writeXmlFile(Document doc, String filename) { try { Source
* source = new DOMSource(doc); File file = new File(filename); Result
* result = new StreamResult(file); Transformer xformer =
* TransformerFactory.newInstance() .newTransformer();
* xformer.transform(source, result); } catch
* (TransformerConfigurationException e) { } catch (TransformerException e)
* { } }
*/
public static void main(String args[]) {
try {
DBSyncTools myDB = new DBSyncTools("MySql", "localhost", "prorion",
"root", "root");
myDB.save();
} catch (ClassNotFoundException e) {
System.out.println(e.getMessage());
} catch (SQLException e) {
System.out.println(e.getMessage());
} catch (ParserConfigurationException e) {
System.out.println(e.getMessage());
}
}
} |
Bien à vous