Я разрабатываю приложение J2EE с платформой Spring и базой данных MySQL. Я хочу выполнить SQL-скрипт из java (возможно, с отображением запроса) только один раз. Я храню sql-операторы в файле свойств в виде пары «ключ-значение», и я прохожу через каждый ключ и выполняю оператор.Java - Выполнение SQL-запросов только один раз
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
Enumeration enuKeys = properties.keys();
while (enuKeys.hasMoreElements()) {
String key = (String) enuKeys.nextElement();
String value = properties.getProperty(key);
stmt.execute(value);
}
Правильно ли это делается? или есть ли другой способ сделать то же самое? Заранее спасибо.
Update:
Как уже упоминалось в комментариях, я попробовал Spring JDBC базы данных инициализировать, но не выполняет все запросы в файле SQL. Выполняется только первый запрос «create», и он вызывает исключение «Таблица» table_name «уже существует». Другие запросы в файле .sql не выполняются. Это происходит каждый раз, когда я запускаю сервер. Просьба помочь
Я думаю, что хранимая процедура sql может вам помочь. Вы это проверили? – Keerthivasan
Сохранение заявлений SQL в правиле может быть не очень хорошим. Лучше иметь его как процедуру. Например, если вы вставляете sql-инструкцию, поместите ее в процедуру, вызовите ее. –
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jdbc.html#jdbc-intializing-datasource, возможно, стоит прочитать –