java 调用 .sql 文件,并执行数据库语句
package com.skycc.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.jdbc.ScriptRunner;
public class SqlFileUtils {
public static void main(String[] args) {
try {
runSqlInStat("E:/sql/t_config.sql");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 执行xx库下的表备份脚本
*
* @param tableName
*/
public static void runSqlInStat(String path) {
Properties prop=new Properties();
try {
InputStream in = SqlFileUtils.class.getClassLoader().getResourceAsStream("application.properties");
prop.load(in);
} catch (Exception e) {
e.printStackTrace();
}
String className = prop.getProperty("spring.datasource.driver-class-name");
String dbUrl = prop.getProperty("spring.datasource.url");
String dbUsername = prop.getProperty("spring.datasource.username");
String dbPassword = prop.getProperty("spring.datasource.password");
try {
Class.forName(className);
Connection conn = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
ScriptRunner runner = new ScriptRunner(conn);
runner.setAutoCommit(true);
String fileName = String.format(path);
File file = new File(fileName);
try {
if (file.getName().endsWith(".sql")) {
runner.setFullLineDelimiter(false);
runner.setDelimiter(";");//语句结束符号设置
runner.setLogWriter(null);//日志数据输出,这样就不会输出过程
runner.setSendFullScript(false);
runner.setAutoCommit(true);
runner.setStopOnError(true);
runner.runScript(new InputStreamReader(new FileInputStream(fileName), "utf8"));
}
} catch (Exception e) {
e.printStackTrace();
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}