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
|
// je crée mon preparedStatement
PreparedStatement insert = Finance.connexion.getPrepared("INSERT INTO "+Finance.TABLE_INSERT+" (source,prog_db_id,pu_db_id,task_db_id,rsrc_code,period,erp_cost,acwp,ea,etc,remain_unit,actual_unit) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)");
// là je parcours mes données à insérer
while(itkey.hasNext()){
if(++cpt == 1000){ // toutes les 1000 lignes j'execute le batch
insert.executeBatch();
insert.clearBatch();
Finance.connexion.commit();
//trace("[INFO] Insertion intermédiaire OK.");
cpt = 0;
}
// récupération des valeurs
ligne = itkey.next();
//trace("valeurs à insérer : "+ligne.getValuesToInsert());
values = itval.next(); // là c'est ma liste de données à insérer pour 1 ligne
insert.setString(1,Common.source);
insert.setInt(2,ligne.getProg());
insert.setInt(3,ligne.getProj());
// bref ...
// requete ok - Insertion dans le batch
insert.addBatch(); // ajout au batch
}
// execute les requetes restantes
insert.executeBatch();
insert.clearBatch();
Finance.connexion.commit();
insert.close(); |
Partager