Du gør det alt for kompliceret.
Brug en PreparedStatement og addBatch() for hver klods på din liste:
String sql = "insert into " + tempTableName + " values (?)";
PreparedStatement stmt = connection.prepareStatement(sql);
for (String query : readQueries) {
stmt.setCharacterStream(1, new StringReader(query), query.lenght());
stmt.addBatch();
}
stmt.exececuteBatch();
Ingen roder rundt med undslippende strenge, intet problem med længden af bogstaverne, ingen grund til at skabe midlertidige klumper. Og sandsynligvis lige så hurtigt som at bruge en enkelt INSERT ALL-sætning.
Hvis du bruger en aktuel driver (> 10.2), så tror jeg, at setCharacterStream()-kaldet og oprettelsen af Reader heller ikke er nødvendig. En simpel setString(1, query)
vil højst sandsynligt også fungere.