执行代码
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.DriverManager;
import org.apache.ibatis.jdbc.ScriptRunner;
public class ExecSqlFileController {
public static void execSqlFileByMysql(String sqlFilePath) throws Exception {
String url = "jdbc:oracle:thin:@xxx.xxxx.xxx.xxx:15211:orclgbk";
String username = "xxxx";
String password = "xxxx";
Exception error = null;
Connection conn = null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, username, password);
conn.setAutoCommit(false);
ScriptRunner runner = new ScriptRunner(conn);
runner.setAutoCommit(false);
runner.setStopOnError(true);
runner.setSendFullScript(false);
runner.setDelimiter(";");
runner.setFullLineDelimiter(false);
runner.setLogWriter(null);
runner.runScript(new InputStreamReader(new FileInputStream(sqlFilePath), StandardCharsets.UTF_8));
conn.commit();
} catch (Exception e) {
assert conn != null;
conn.rollback();
error = e;
} finally {
close(conn);
}
if (error != null) {
throw error;
}
}
private static void close(Connection conn) {
try {
if (conn != null) {
conn.close();
}
} catch (Exception e) {
if (conn != null) {
conn = null;
}
}
}
public static void main(String[] args) {
try {
execSqlFileByMysql("C:\\Users\\zhou\\Desktop\\test.sql");
} catch (Exception e) {
e.printStackTrace();
}
}
}