Tôi đang cố gắng viết một đoạn mã đọc một tệp SQL (nhiều câu lệnh CREATE TABLE
được phân tách bằng ;
) và thực thi tất cả các câu lệnh.Thực thi tệp SQL từ Spring JDBC Template
Trong JDBC tinh khiết, tôi có thể viết:
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);"
java.sql.Connection connection = ...;
Statement statement = connection.createStatement();
statement.executeUpdate(sqlQuery);
statement.close();
và cả (tất cả) các báo cáo đã thực hiện. Khi tôi cố gắng làm tương tự trong Spring JdbcTemplate, chỉ có câu lệnh đầu tiên được thực hiện mặc dù!
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);"
org.springframework.jdbc.core.JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
jdbcTemplate.execute(sqlQuery);
Có cách nào để thực hiện nhiều câu lệnh không? Trong khi googling tôi chỉ tìm thấy các giải pháp như "tách sqlQuery bởi ;
bằng tay" mà tất nhiên là vô ích (nó sẽ đòi hỏi phân tích cú pháp nhiều hơn nữa).
có vẻ như để làm việc. Mặc dù không xóa nhận xét (mà SQLite có thể giữ làm mô tả cho các cột), nhưng điều đó không làm tôi lo lắng nhiều đến thế. –
Có cách nào để thay đổi số hàng bằng phương thức executeSqlScript() này không? – zygimantus
executeSqlScript hiện không được chấp nhận. Bất kỳ thay thế nào? – Daniele