1 package migratool.datasources;
2
3 import java.sql.PreparedStatement;
4 import java.sql.SQLException;
5 import java.util.ArrayList;
6 import java.util.Iterator;
7 import java.util.Vector;
8
9 import migratool.access.Connector;
10 import migratool.model.BDdescription;
11
12 import org.apache.log4j.Logger;
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 public class DestinationDataSource extends AbstractDestinationDataSource {
40
41 static Logger logger = Logger.getLogger(DestinationDataSource.class);
42
43
44
45
46 public DestinationDataSource(BDdescription destinationDescrition) {
47 this.destinationDescrition = destinationDescrition;
48 dbAccess = Connector.getInstance();
49 dbConnection = dbAccess.getConnection(destinationDescrition);
50 }
51
52
53 public void addData(ArrayList data) throws MigDestinationDataSourceException {
54
55 try {
56
57 int quantFields = ((Vector)data.get(0)).size();
58 String variables = generateVariables(quantFields);
59 PreparedStatement pst = null;
60 String consulta = "INSERT INTO " + destinationDescrition.getTableName() + " VALUES " + variables;
61 dbConnection.setAutoCommit(false);
62 pst = dbConnection.prepareStatement(consulta);
63 logger.debug("DestinationDataSource.addData() - consulta: " + consulta);
64 Iterator itLines = data.iterator();
65 int line = 1;
66 Object insertValue = null;
67 while(itLines.hasNext()){
68 Vector currentLine = (Vector) itLines.next();
69 for(int parameter = 1; parameter <= currentLine.size(); parameter++){
70 insertValue = currentLine.elementAt(parameter-1);
71
72
73
74
75
76 pst.setObject(parameter,insertValue);
77 logger.debug("DestinationDataSource.addData() - parameter: " + parameter +
78 " valor: " + (insertValue));
79 }
80
81 pst.addBatch();
82 logger.info("DestinationDataSource.addData() - adicionado linha " + line);
83 line++;
84 }
85 logger.info("DestinationDataSource.addData() - consulta: " + consulta);
86 pst.executeBatch();
87 dbConnection.commit();
88 } catch(SQLException sqlExcep) {
89 throw new MigDestinationDataSourceException(sqlExcep);
90 }
91
92 }
93 public String toString(){
94 return "DestinationDataSource";
95 }
96
97 }