Для интеграционных тестов, работающих с 11 различными RBDMS для библиотеки абстракций базы данных, мне нужно часто сбрасывать схему и / или данные. Это означает, что я запускаю множество операторов для большинства тестовых случаев.
Сброс схемы требуется только в начале набора тестов. Например:
DROP VIEW
DROP TABLE
DROP SEQUENCE
DROP PROCEDURE
...
CREATE TABLE
...
Сброс данных необходим только для тестов, которые записывают данные. Например:
DROP SEQUENCE
DELETE FROM TABLE ...
CREATE SEQUENCE
INSERT INTO TABLE ...
Тесты только для чтения довольно быстрые, так как не требуют сброса. Интуитивно я просто считывал файл SQL в память и выполнял каждое выражение, используя это:
// No bind variables, all hard parses
// Bind variables won't help much, though as the "hard-parse-reduction" isn't very big.
stmt = connection.createStatement();
stmt.execute(sql);
В некоторых системах это довольно медленно. Есть ли лучший способ сделать это с JDBC? Или я должен принять тот факт, что это может быть медленным ...?