如何在Java中执行SQL脚本文件?
2022-09-01 03:00:17
我想在Java中执行SQL脚本文件,而无需将整个文件内容读取到一个大查询中并执行它。
还有其他标准方法吗?
我想在Java中执行SQL脚本文件,而无需将整个文件内容读取到一个大查询中并执行它。
还有其他标准方法吗?
从Java执行SQL脚本的好方法,只要你不介意依赖Ant,就可以自己阅读它们。在我看来,这种依赖性在你的情况下是非常合理的。下面是示例代码,其中 SQLExec 类位于 ant.jar中:
private void executeSql(String sqlFilePath) {
final class SqlExecuter extends SQLExec {
public SqlExecuter() {
Project project = new Project();
project.init();
setProject(project);
setTaskType("sql");
setTaskName("sql");
}
}
SqlExecuter executer = new SqlExecuter();
executer.setSrc(new File(sqlFilePath));
executer.setDriver(args.getDriver());
executer.setPassword(args.getPwd());
executer.setUserid(args.getUser());
executer.setUrl(args.getUrl());
executer.execute();
}
没有便携式方法可以做到这一点。您可以执行本机客户端作为外部程序来执行此操作,但是:
import java.io.*;
public class CmdExec {
public static void main(String argv[]) {
try {
String line;
Process p = Runtime.getRuntime().exec
("psql -U username -d dbname -h serverhost -f scripfile.sql");
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
}
catch (Exception err) {
err.printStackTrace();
}
}
}