Нет разницы с базой данных
Независимо от того, создаете ли вы таблицы и столбцы и т. Д. С помощью JDBC или с помощью сценариев SQL, в обоих случаях это просто команды SQL, подаваемые в ядро базы данных. Так что нет, базе данных все равно, как вы это сделаете.
привилегии пользователя на машине, скорость, надежность / стабильность
У вас должны быть соответствующие права пользователя и доступ к базе данных, независимо от того, вызываете ли вы JDBC или запускаете сценарии. Я не вижу там никаких проблем.
Что касается скорости, опять же, вы заканчиваете тем, что отправляете операторы SQL в ядро базы данных, так что без разницы. То же самое касается надежности и стабильности.
Существуют стратегии для скорости, такие как локальная работа на сервере (не по сети) и массовая загрузка . Эти стратегии применяются независимо от того, используются ли сценарии JDBC или SQL.
Инструменты миграции баз данных
Вы должны узнать о инструментах миграции баз данных .
Например, мой любимый Flyway - это инструмент на основе Java, который автоматически запускает набор сценариев SQL. При желании Flyway может вызывать написанные вами Java-классы для управления базой данных, для сложных сценариев, когда SQL недостаточно. Таким образом, вы получите лучшее из обоих маршрутов в своем Вопросе, пройдя через JDBC или пройдя через сценарии SQL.
Flyway работает автоматически, создавая таблицу для ведения домашнего хозяйства. В этой таблице он отслеживает, какие скрипты были запущены. Каждый раз, когда вы вызываете Flyway, он проверяет, какие сценарии были запущены ранее, и сравнивает их со всеми найденными сценариями. Любые новые обнаруженные сценарии затем выполняются и отслеживаются. То же самое для любых написанных вами Java-классов для манипулирования базой данных.
Обратите внимание, насколько полезен этот подход при разработке и тестировании. Когда бы вы ни захотели, вы можете запустить новую базу данных и увеличить ее до любой точки в развитии вашего приложения, просто убрав или добавив различные сценарии. Тестеры могут добавлять дополнительные сценарии для загрузки данных для создания конкретного сценария использования. Все это можно сделать многократно и с помощью автоматизированных инструментов.
Также полезно в производстве. Полностью автоматизируя обновление структуры базы данных, вы устраняете человеческую ошибку. Развертывание будет более спокойным процессом. Конечно, для непрерывной интеграции инструмент миграции базы данных практически необходим.
Вы можете вызывать Flyway через Java, как правило, на этапе инициализации запуска вашего приложения. Или вы можете вызвать Flyway с помощью инструментов командной строки на консоли. Консольные инструменты обертывают Flyway драйверами JVM и JDBC , тем самым скрывая тот факт, что Flyway работает на Java. Таким образом, даже магазин, не принадлежащий Java, может в полной мере использовать Flyway.
За последние годы инструменты миграции значительно продвинулись вперед. Рассмотрите возможность использования Flyway , Liquibase или какого-либо подобного инструмента.