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

Java 执行sql脚本

2013-05-30 13:48 183 查看
在Java 程序中,运行 sql文件总结:

两种思路:

第一种思路:读取脚本文件,分解成 sql 语句,然后在程序中执行批处理。

第二种思路:利用 Ant 的SQL Task来实现执行SQL 脚本的功能。

第一种思路的麻烦之处在于,如何将一个文件中的所有语句分解成一句句的SQL语句,如果分解的稍微不成功,执行时就会出问题,所以必须在文件中作标记。

相比这下,第二种思路比较有优势,利用成熟的技术为自己所用。下面简要说说第二种思路的实现方法:

ant 包中的 SQLExec类的扩展,此时需要将ant 包(ant.jar)导入

import java.io.File;

import org.apache.tools.ant.*;

import org.apache.tools.ant.taskdefs.*;

import org.apache.tools.ant.types.*;

import com.microsoft.jdbc.sqlserver.SQLServerDriver;

public class AntExecSql {

public AntExecSql() {

}

public static void execSqlFile(String url,String userID,String pwd,String sqlFile){

SQLExec sqlExec = new SQLExec();

//            设置数据库参数

sqlExec.setDriver("com.microsoft.jdbc.sqlserver.SQLServerDriver");

sqlExec.setUrl(url);

sqlExec.setUserid(userID);

sqlExec.setPassword(pwd);

sqlExec.setSrc(new File(sqlFile));

// sqlExec.setOnerror((SQLExec.OnError)(EnumeratedAttribute.getInstance(SQLExec.OnError.class, "abort")));

sqlExec.setPrint(true); //设置是否输出

//                          输出到文件 sql.out 中;不设置该属性,默认输出到控制台

// sqlExec.setOutput(new File("d:/script/sql.out"));

sqlExec.setProject(new Project()); // 要指定这个属性,不然会出错

sqlExec.execute();

}

}


地址:http://xuezl007.blog.163.com/blog/static/471478200852115047684/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: