Я пытаюсь выполнить файл .sql во время установки моего веб-проекта с помощью jdbc.Google предлагает 2 варианта: либо синтаксический анализ сценария вручную (путем разделения символа «;»), либо использование ant.Я предпочитаю простой способ, поэтому муравей - хороший выбор.Это код, который я использую для настройки базы данных:
public void executeSql(String sqlFilePath) {
final class SqlExecuter extends SQLExec {
public SqlExecuter() {
Project project = new Project();
project.init();
setProject(project);
setTaskType("sql");
setTaskName("SQL Init");
}
}
SqlExecuter executer = new SqlExecuter();
executer.setSrc(new File(sqlFilePath));
executer.setDriver("com.mysql.jdbc.Driver") ;
executer.setPassword("123456");
executer.setUserid("root");
executer.setUrl("jdbc:mysql://localhost:3306/abc");
executer.execute();
}
Код работает нормально, пока не выполнит часть создания процедуры
DELIMITER //
CREATE PROCEDURE LOG (IN period INT)
BEGIN
INSERT INTO log_archive
SELECT * FROM ablog
WHERE log_date < DATE_SUB(CURRENT_DATE(), INTERVAL period DAY);
DELETE FROM ablog
WHERE log_date < DATE_SUB(CURRENT_DATE(), INTERVAL period DAY);
END//
DELIMITER ;
и выдаст эту ошибку:
Причина: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: в синтаксисе SQL имеется ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с «DELIMITER // CREATE PROCEDURE LOG (IN period INT) BEGIN INSERT INTO log_archi» в строке 1
, если я удаляючасть хранимой процедуры, тогда она будет работать хорошо.Файл sql также успешно выполняется из командной строки mysql.У вас есть предложения по решению этой проблемы?