Próbuję napisać trochę kodu, który odczytuje plik SQL (wiele instrukcji CREATE TABLE
rozdzielonych przez ;
) i wykonuje wszystkie instrukcje.Wykonaj plik SQL ze Spring JDBC Template
w czystej JDBC, mogę napisać:
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);"
java.sql.Connection connection = ...;
Statement statement = connection.createStatement();
statement.executeUpdate(sqlQuery);
statement.close();
i oba (wszystkie) oświadczenia został wykonany. Kiedy próbowałem zrobić to samo na wiosnę JdbcTemplate, wykonywana jest tylko pierwsza instrukcja!
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);"
org.springframework.jdbc.core.JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.execute(sqlQuery);
Czy istnieje sposób wykonywania wielu instrukcji? Podczas googlowania znalazłem tylko rozwiązania takie jak "podzielenie sqlQuery przez ;
ręcznie", co oczywiście jest bezużyteczne (wymagałoby znacznie więcej analiz).
wydaje się działać. Czy usuwa komentarze (które SQLite może zachować jako opis kolumn), ale to nie martwi mnie tak bardzo. –
Czy istnieją sposoby na zmianę liczby wierszy za pomocą tej metody executeSqlScript()? – zygimantus
executeSqlScript są teraz przestarzałe. Jakaś alternatywa? – Daniele