如何在没有iBatis的情况下在JDBC中运行SQL脚本?

问题描述 投票:-1回答:2

我在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的情况下运行此脚本。

有什么想法吗?

java jdbc
2个回答
0
投票

您需要将.sql文件读取为String,然后用定界符;对其进行分割并依次执行。


0
投票
  1. 将.sql文件读取为字符串
  2. 将每个单独的sql分割成ArrayList,然后进行迭代
  3. 使用connection.prepareStatement执行每个sql

将是:

for(String sql : sqlStrings){
  PreparedStatement ps = connection.prepareStatement(sql);
  ps.execute()
}
© www.soinside.com 2019 - 2024. All rights reserved.