Bonjour,

J'aurai une petite question sur les insert.

J'utilise QueryRunner qui simplifie l'exécution des requête.

Je développe un batch.

Dans un fichier properties, j'ai une requête qui ressemble à ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
requete.operation = insert into operations (ope_id,ope_num_operation) select ope_id, ope_num_operation from operation where date between ? and ?)
En Java, j'utilise la méthode update de la classe QueryRunner
update(Connection connection, String sql, Objet[] param)
Le ? est remplacé par les élements du tableau param.

Ma question est que j'ai remplacé ma requête par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
requete.operation = insert into operations (ope_id,ope_num_operation) ?
? serait remplacé par une liste en Java.

Je sais pas si c'est possible ???

En gros, je récupère le résultat du "select ope_id, ope_num_operation from operation where date between ? and ?" dans une arrayList.
et ensuite j'injecte cette liste dans la requête suivante : insert into operations (ope_id,ope_num_operation) ?

Vous allez me dire pourquoi me prendre la tête sur ça, mais là j'ai simplifié, la requête que je veux stocker dans une liste est assez complexe, et j'aimerai gérér ça en Java, car j'ai des traitement à faire sur ses données.

Sinon une autre solution, serait de parcourir la liste et faire un insert sur chaque élement.

En gros, au lieu de faire ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
For (liste.size) {
 
insert into operation (ope_id) values (list.get(0))
 
}
j'aimerai faire ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
insert into operation (ope_id) (liste)