Безопасность
Непосредственное выполнение неподготовленных операторов может привести к внедрению SQL.Однако вы, похоже, читаете операторы DDL из статического файла, так что это не должно быть проблемой, просто хотелось бы отметить, что.
Обработка исключений
Отсутствует полностьюнапример, правильное закрытие входных потоков, соединений и т. д. Кроме того, отсутствует подробная информация о том, какой из операторов не выполнен, если выбрасывается какой-либо из SQLExceptions
.Переменная sqlCmd
также подсчитывает ошибочные операторы, поэтому я сомневаюсь в полезности этого счетчика.
Синтаксический анализ SQL / DDL
Вы проверяете комментарии типа --
, но не для /* */
комментариев.Это когда-нибудь тебя укусит.Кроме того, синтаксический анализатор предполагает оператор SQL на строку.Более длинные операторы могут быть многострочными и заканчиваться точкой с запятой, которые необходимо обрезать.Хотя вы не уверены в том, как liquibase генерирует операторы, так что это не может быть реальной проблемой.
Обработка транзакций
Операторы DDL в любом случае не могут быть отменены, поэтому не уверено сделках, являющихся полезными.Пожалуйста, поправьте меня, если я ошибаюсь.
В противном случае, поскольку это для тестирования, я тоже выгляжу хорошо.