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();
		}
		
	}

注:此方法运行后,存储过程、触发器、函数、包会处于无效状态。原因未知???




posted @ 2017-08-16 11:09  jzdwajue  阅读(730)  评论(0编辑  收藏  举报