JDBC, INSERT MULTIPLE loggings obtenus à partir de la requête, dans une autre table

J'ai besoin d'insert plusieurs loggings dans la database mysql à la fois. Ce que je fais est SELECT sur une table, de mon application avec l'instruction Prepared. Ce que je dois faire est d'insert ces résultats dans une autre table temporaire.

 Ssortingng sqlquery = "select * from table1 where arg1 = ?"; PreparedStatement statement; statement = con.prepareStatement(sql); ArrayList<Ssortingng>termlist = index.getTermList(); for (int i = 0; i < termlist.size(); i++) { Ssortingng search = termlist.get(i); statement.setSsortingng(1,search); ResultSet rs1 = statement.executeQuery(); // } 

Ces sets peuvent être gros. Quel est le moyen le plus rapide d'insert ce ResultSet dans mon autre tableau après chaque itération?

Comment passer ce jeu de résultats à une procédure stockée, s'il y a moyen?

Vous pourriez get la database pour faire le travail pour vous:

 INSERT INTO othertable SELECT col1, col2 FROM table1 WHERE arg1 = ? 

De cette façon, vous n'avez pas besoin d'envoyer une copy de données à la database existante.

Vous pouvez exécuter une seule requête si vous passez une list de valeurs de parameters séparées par des virgules dans une procédure stockée et utilisez une clause IN (val1, val2, ...) . Vous ne savez pas quelle est la limite de MySQL pour la longueur d'une clause IN.

Voici une implémentation fractionnée .