Exécuter le fichier SQL à partir du modèle JDBC Spring
Je suis en train d'écrire un peu de code qui lit un fichier SQL (plusieurs CREATE TABLE
instructions sont séparées par ;
) et exécute toutes les instructions.
Dans le plus pur JDBC, je pourrais écrire:
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);"
java.sql.Connection connection = ...;
Statement statement = connection.createStatement();
statement.executeUpdate(sqlQuery);
statement.close();
et les deux (tous) les déclarations ont été exécutés. Quand j'ai essayé de faire la même chose au printemps JdbcTemplate, seule la première instruction est exécutée si!
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);"
org.springframework.jdbc.core.JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.execute(sqlQuery);
Est-il possible d'exécuter plusieurs instructions? Alors que les recherches sur google je n'ai trouvé que des solutions comme "diviser le sqlQuery par ;
manuellement", ce qui bien sûr est inutile (il avait besoin de beaucoup plus d'analyse).
source d'informationauteur Ondrej Skalicka
Vous devez vous connecter pour publier un commentaire.
Peut-être le Printemps ScriptUtils sera utile dans votre cas. Surtout
executeSqlScript
méthodes.Noter que
DEFAULT_STATEMENT_SEPARATOR
a une valeur par défaut de';'
(voir Constante Des Valeurs De Champ)J'ai résolu le problème de cette façon:
essayer
Nous pouvons également fournir par le biais de SQLExec. Code ci-dessous est de travailler pour moi.
importer java.io.Fichier;