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 : 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
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