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

java 执行Sql文件

2015-07-24 16:29 627 查看
定义数据库连接属性:

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


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