我在iBatis上有此代码:
try {
Class.forName(JDBC_DRIVER);
connection = DriverManager.getConnection(DB_URL, USER, PASS);
ScriptRunner sr = new ScriptRunner(connection);
sr.setAutoCommit(true);
Reader reader1 = new BufferedReader(new FileReader("start.sql"));
Reader reader2 = new BufferedReader(new FileReader("create.sql"));
sr.runScript(reader1);
sr.runScript(reader2);
connection.close();
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (connection != null) connection.close();
} catch (SQLException se) {
se.printStackTrace();
}
并且它可以工作,但是我需要在不使用iBatis的情况下运行此脚本。
有什么想法吗?
您需要将.sql
文件读取为String
,然后用定界符;
对其进行分割并依次执行。
将是:
for(String sql : sqlStrings){
PreparedStatement ps = connection.prepareStatement(sql);
ps.execute()
}