sqlcript Java_执行SQL脚本工具类

1、引入ant.jar包(在http://ant.apache.org/网站上下载)

使用MAVEN构建项目加入下面依速

org.apache.ant

ant

1.7.1

import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.util.Properties; import java.util.UUID; import org.apache.commons.lang.xwork.StringUtils; import org.apache.log4j.Logger; import org.apache.tools.ant.BuildException; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.SQLExec; import org.apache.tools.ant.types.EnumeratedAttribute; import com.coship.vasms.core.exception.BusinessException; /**  *  * File Name : SQLScriptUtil.java  *  * @Description : sql脚本工具类  */ public class SQLScriptUtil {     private static Logger logger = Logger.getLogger(SQLScriptUtil.class             .getName());     /**      * Description : 执行SQL脚本文件      *      * @throws BusinessException      *      */     public static void ExecuteSqlScript(String driverClassName,             Properties properties, String sqlScript) throws BusinessException     {         if (StringUtils.isBlank(sqlScript))         {             return;         }         try         {             ExecuteSql(driverClassName, properties, sqlScript);         } catch (BuildException e)         {             logger.error("sql脚本执行出错!", e);             // 执行脚本失败             throw new BusinessException("sql.script.exec.error");         } catch (IOException e)         {             logger.error("sql脚本执行出错!", e);             // 执行脚本失败             throw new BusinessException("sql.script.exec.error");         } catch (SQLException e)         {             logger.error("sql脚本执行出错!", e);             // 执行脚本失败             throw new BusinessException("sql.script.exec.error");         } catch (Exception e)         {             logger.error("sql脚本执行出错!", e);             // 执行脚本失败             throw new BusinessException("sql.script.exec.error");         }     }     private static void ExecuteSql(String driverClassName,             Properties properties, String sqlScript) throws Exception     {         File printFile = null;         try         {             SQLExec sqlExec = new SQLExec();             // 设置数据库参数             String url = properties.getProperty("url");             String user = properties.getProperty("user");             String password = properties.getProperty("password");             sqlExec.setDriver(driverClassName);             sqlExec.setUrl(url);             sqlExec.setUserid(user);             sqlExec.setPassword(password);             // 要执行的脚本             // srcFile = createTempFileBySqlScript(sqlScript);             // sqlExec.setSrc(srcFile);             sqlExec.addText(sqlScript);             // 有出错的语句该如何处理             sqlExec.setOnerror((SQLExec.OnError) (EnumeratedAttribute                     .getInstance(SQLExec.OnError.class, "abort")));             try             {                 printFile = File.createTempFile(UUID.randomUUID().toString(),                         ".log");             } catch (IOException e)             {                 printFile = null;             }             // 设置是否输出             sqlExec.setPrint(true);             // 输出到文件 sql.out 中;不设置该属性,默认输出到控制台             if (null != printFile)             {                 sqlExec.setOutput(printFile);             }             sqlExec.setProject(new Project());             sqlExec.execute();         } finally         {             if (null != printFile)             {                 printFile.deleteOnExit();             }         }     } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值