码迷,mamicode.com
首页 > 数据库 > 详细

java 执行Sql文件

时间:2015-07-24 18:29:37      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

定义数据库连接属性:

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

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




版权声明:本文为博主原创文章,未经博主允许不得转载。

java 执行Sql文件

标签:

原文地址:http://blog.csdn.net/kuangfengbuyi/article/details/47043027

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!