2017-07-04 2 views
2

Ai-je raison de dire que je ne peux utiliser qu'une requête sql SQL pour le traitement par lots en utilisant PreparedStatement en Java?Traitement par lots à l'aide de PreparedStatement

Par exemple, cela est le lot que je veux traiter à l'aide PreparedStatement:

INSERT INTO tbl_Customer VALUES(?,?,?,?) 
INSERT INTO tbl_Order VALUES(?,?,?,?,?) 

Est-il possible de traiter ces déclarations comme un lot? Désolé pour mon mauvais anglais.

+1

double possible de [en utilisant JDBC PreparedStatement dans un lot] (https://stackoverflow.com/questions/6860691/using-jdbc-preparedstatement-in-a-batch – Flown

+0

Vous ne pouvez pas faire les deux dans le même lot. Vous pouvez cependant utiliser deux PreparedStatements en parallèle. –

Répondre

3

Vous le modèle suivant:

PreparedStatement ps = null; 

ps = conn.prepareStatement("INSERT INTO tbl_Customer VALUES(?,?,?,?)"); 
while() { 
    ... 
    ps.addBatch(); 
} 
result = ps.executeBatch(); 
+0

Je veux insérer dans 2 tables différentes. Votre code aide seulement à ajouter plusieurs enregistrements dans une seule table. –

+0

utilise 1 fonction mais appelle deux fois avec 2 SQLs – user7294900

+0

Le point d'utilisation d'un batch est qu'il peut être annulé quand il y a un problème avec un enregistrement. Ainsi, aucun enregistrement n'est inséré dans la base de données. Si j'utilise 2 SQL, l'autre est toujours inséré dans la base de données, non? –