您的位置:首页 > 编程语言 > Java开发

java 执行Sql文件

2015-12-14 00:00 435 查看
定义数据库连接属性:

static String diverName="oracle.jdbc.driver.OracleDriver";
static String url = "jdbc:oracle:thin:@192.168.90.11:1521:ucap";
static String user="armyoa73015";
static String pwd = "armyoa73015";


1. 执行的方法(依赖ant.jar):

static String fileName = "D:\\workspace\\huzhou\\jd-txt73015\\sql\\f_xxyr_xlcjdj.sql";
public static void runSqlFile(){

SQLExec sqlExec = new SQLExec();
sqlExec.setDriver(diverName);
sqlExec.setUrl(url);
sqlExec.setUserid(user);
sqlExec.setPassword(pwd);

sqlExec.setSrc(new File(fileName));
sqlExec.setEncoding("GBK");

DelimiterType dt = new DelimiterType();
dt.setValue("row");
sqlExec.setDelimiterType(dt);
sqlExec.setDelimiter("/");
sqlExec.setKeepformat(true);

sqlExec.setProject(new Project());
sqlExec.execute();

}


2. 执行的方法(依赖mybatis-3.0.6.jar):

public static void runSqlFile1(){
try {
Class.forName(diverName);
Connection conn = DriverManager.getConnection(url, user, pwd);
ScriptRunner runner = new ScriptRunner(conn);
runner.setAutoCommit(true);

File file = new File(fileName);

try {
if (file.getName().endsWith(".sql")) {
runner.setFullLineDelimiter(true);
runner.setDelimiter("##");
runner.setSendFullScript(false);
runner.setAutoCommit(true);
runner.setStopOnError(true);
runner.runScript(new InputStreamReader(new FileInputStream(fileName),"GBK"));
}
}catch(Exception e){
e.printStackTrace();
}

conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}


注:此方法执行后,存储过程、触发器、函数、包会处于无效状态。原因未知???
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: