This repository has been archived by the owner on Jul 2, 2020. It is now read-only.
/
DataMigrationMain.java
58 lines (43 loc) · 2.24 KB
/
DataMigrationMain.java
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
package fr.soat.icoundoul.dbunit.extractor;
import java.io.File;
import java.io.FileOutputStream;
import java.sql.DriverManager;
import java.util.Arrays;
import java.util.TreeSet;
import org.dbunit.database.DatabaseConfig;
import org.dbunit.database.DatabaseConnection;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.database.search.TablesDependencyHelper;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ReplacementDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
import org.dbunit.ext.mysql.MySqlMetadataHandler;
import org.dbunit.operation.DatabaseOperation;
public class DataMigrationMain {
private static IDatabaseConnection getConnexion(String base, String schema) throws Exception {
// connection à la base source (baseX)
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection jdbcConnection = DriverManager.getConnection("jdbc:mysql://localhost:3306/" + base, "root", "");
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection, schema);
// On précise qu'on utilise Mysql
connection.getConfig().setProperty(DatabaseConfig.PROPERTY_METADATA_HANDLER, new MySqlMetadataHandler());
return connection;
}
public static void main(String[] args) throws Exception {
// 1: Extartion d'un client avec tous ses détails
int numClient = 200;
IDatabaseConnection connectionBaseX = getConnexion("baseX", "baseX");
IDataSet ds = TablesDependencyHelper.getAllDataset(connectionBaseX, "t_client", new TreeSet(Arrays.asList(numClient)));
String fileName = "data_client_" + numClient + ".xml";
FlatXmlDataSet.write(ds, new FileOutputStream(fileName));
System.out.println("Export avec succès du client " + numClient + ". Fichier dataSet:" + fileName);
// 2. Injection du client avec tous ses détails dans la base Z
IDatabaseConnection connectionBaseZ = getConnexion("baseZ", "baseZ");
File dataSetFile = new File(fileName);
IDataSet dataSet = new FlatXmlDataSetBuilder().build(dataSetFile);
ReplacementDataSet replacementDataSet = new ReplacementDataSet(dataSet);
DatabaseOperation.CLEAN_INSERT.execute(connectionBaseZ, replacementDataSet);
System.out.println("Client " + numClient + " injecté avec succés dans la base Z");
}
}