2015-12-01 2 views
1

У меня есть файл Filename.sql(Mysql Script), который имеет несколько операторов SQL. Я использую MyBatis как основу persistence и MySQL как базу данных. Я хочу выполнить файл Filename.sql в программе Java.Выполнение файла Filename.sql в Java с использованием MyBatis

ПРИМЕЧАНИЕ. Я не хочу выполнять запросы в виде отдельных операторов SQL.

Эта операция эквивалентна source Filename.sql в командной строке MySQL.

+0

Эксперты, пожалуйста, ответить на этот вопрос. –

+0

Это сообщение http://www.codeproject.com/Articles/802383/Run-SQL-Script-sql-containing-DDL-DML-SELECT-state и это http://www.mkyong.com/jdbc/how- to-run-a-mysql-script-using-java/может помочь. Но, пожалуйста, покажите, что вы пробовали. – Lucky

ответ

-1

Я думаю, вы должны попытаться использовать что-то вроде Liquibase или что-то подобное вам нравится. В этом случае вам нужно преобразовать ваш .sql-скрипт в linibase. Затем вы можете выполнить его с помощью плагина Maven или только с Java.

+0

Что относительно myBatis? – agad

+0

myBatis не имеет функций для работы с скриптами .sql. – KillSwitch

+0

Я нашел класс __ScriptRunner__ в myBatis – agad

1

вы можете использовать org.apache.ibatis.jdbc.ScriptRunner сделать это:

ScriptRunner runner = new ScriptRunner(dataSource.getConnection()); 
runner.setAutoCommit(true); 
runner.setStopOnError(true); 
runner.runScript(getResourceAsReader("Filename.sql")); 
runner.closeConnection(); 
+0

Как насчет myBatis? – agad

-1
private void runMysqlScript(String sqlScriptFilePath) { 

    try { 
     // Create MySQL Connection 
     Class.forName(driverClassName); 
     Connection connection = 
       DriverManager.getConnection(jdbcURL, jdbcUsername, jdbcPassword); 
     // Initialize object for ScriptRunner 
     ScriptRunner runner = new ScriptRunner(connection); 
     // Give the input file to Reader 
     Reader br = new BufferedReader(new FileReader(sqlScriptFilePath)); 
     // Execute script 
     runner.runScript(br); 

    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

Что относительно myBatis? – agad

Смежные вопросы