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

	}

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

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

时间: 2024-10-28 13:02:04

java 执行Sql文件的相关文章

java程序执行sql文件

List<String> sqlFileList = new ArrayList<String>();从文件读放内容到按分号放到sqlFileListpublic List<String> readSqlFiles(List<String> fileNameList) {List<String> sqlList = new ArrayList<String>();for (String fileName : fileNameList)

使用java以及jdbc不使用第三方库执行sql文件脚本

使用java以及jdbc不使用第三方库执行sql文件脚本 2017年02月15日 15:51:45 阅读数:660 使用java执行sql脚本的方法 解析sql脚本,删除不必要的注释和空行 将语句按分号拆开 并将最终的语句放入batch里面 最后进行执行 package test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStre

Java执行SQL脚本导入

今天做了一个用java导入sql脚本的功能,前台上传一个sql文件,后台先保存本地,然后进行导入.主要代码如下: String cmd = "cmd /c sqlplus usr/[email protected]{//服务器IP:1521/}sid @d:\\1.sql>d:\\t.log"; Process p = null; try {     p = Runtime.getRuntime().exec(cmd); } catch (IOException e) {    

MySQL命令执行sql文件的两种方法

MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希望能给刚开始学习 MySQL 数据库的朋友们. 学习过 SQLServer 或 Oracle 的朋友会知道,sql 脚本是包含一到多个 sql 命令的 sql 语句集合,我们可以将这些 sql 脚本放在一个文本文件中(我们称之为“sql 脚本文件”),然后通过相关的命令执行这个 sql 脚本文件.基

java 执行sql脚本的3种方式 (ant,ibatis,ScriptRunner)

package com.unmi; import java.io.*; import org.apache.tools.ant.*; import org.apache.tools.ant.taskdefs.*; import org.apache.tools.ant.types.*; /** * 调用 ant.jar 的 SQLExec 执行 SQL 脚本文件 * @author Unmi */ public class AntExecSql { /** * @param args */ pu

利用PHP执行SQL文件,将SQL文件导入到数据库

如何利用php自动执行.sql文件.其实很简单,就是获取sql文件中的内容,然后将每一句sql语句一次执行就行啦. 这是代码 //读取文件内容 $_sql = file_get_contents('test.sql'); $_arr = explode(';', $_sql); $_mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS); if (mysqli_connect_errno()) { exit('连接数据库出错'); } //执行sql语句 for

mysql执行 sql文件遇到USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=utf8错误

使用navcat在导入别人发的mysql数据的时候,报了下面这个错误: [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=utf8' at line 9 错误原因主要

批量执行SQL文件

原文:批量执行SQL文件 摘要:很多时候我们在做系统升级时需要将大量的.sql文件挨个执行,十分不方便.而且考虑到执行顺序和客服的操作方便性,能不能找到一种简单的方法来批量执行这些sql文件呢? 主要内容: 准备工作 利用osql/ocmd命令批量执行sql文件 使用master..xp_cmdshell存储过程调用osql/ocmd命令 总结 一.准备工作 既然是要批量执行sql文件,首先我们建立两个sql文件:1.sql和2.sql. 1.sql的内容: INSERT INTO dbo.Pr

oracle spool 用法小结及执行.sql文件

spool 用法 SQL> spool f:\sjzd.txtStarted spooling to f:\sjzd.txt SQL> desc t_gg_djb; SQL> spool offStopped spooling to f:\sjzd.txt 然后去到f:\sjzd.txt打开文件就能看到导出的数据了 windows下plsql执行.sql文件 SQL> start f:\1.sql 2 / 回车后语句就可以执行