运行.sql文件使用java代码

时间:2016-05-26 05:44:37

标签: java

我有一个包含过程和插入语句的abc.sql文件。如何在不使用脚本Runner API的情况下使用java代码运行脚本(abc.sql文件)。

1 个答案:

答案 0 :(得分:1)

使用ProcessBuilder。在示例代码下面,我运行select查询并在控制台中打印结果。

public class RunOracleSql {
    public static void main(String[] args) {
        final String fileExtension = ".sql";
        String script_location = "C:/SQLFileLocation";
        try {
            File file = new File("C:/SQLFileLocation");
            File[] listFiles = file.listFiles(new FileFilter() {

                public boolean accept(File f) {
                    if (f.getName().toLowerCase().endsWith(fileExtension))
                        return true;
                    return false;
                }
            });
            for (int i = 0; i < listFiles.length; i++) {
                script_location = "@" + listFiles[i].getAbsolutePath();// ORACLE
                ProcessBuilder processBuilder = new ProcessBuilder("sqlplus",
                        "username/password@database_name", script_location); // ORACLE

                processBuilder.redirectErrorStream(true);
                Process process = processBuilder.start();
                BufferedReader in = new BufferedReader(new InputStreamReader(
                        process.getInputStream()));
                String currentLine = null;
                while ((currentLine = in.readLine()) != null) {
                    System.out.println(" " + currentLine);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}