java 运行Sql文件
定义数据库连接属性:
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(); } }
注:此方法运行后,存储过程、触发器、函数、包会处于无效状态。原因未知???