http://blog.csdn.net/dream_broken/article/details/54340482
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
package com.yhxy.vdc.dbcp.util; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.InputStreamReader; import java.io.Reader; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLPermission; import org.apache.ibatis.jdbc.ScriptRunner; import org.apache.log4j.Logger; public class DbUtil { private static Logger LOG =Logger.getLogger(DbUtil.class.getName()); /** * * @param ip * @param port * @param userName * @param pwd * @param sqlFilePath * @throws Exception */ public static void execSqlFileByMysql(String ip,String port,String userName,String pwd,String sqlFilePath) throws Exception{ String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://"+ip+":"+port; Exception error = null; Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, userName, pwd); ScriptRunner runner = new ScriptRunner(conn); //下面配置不要随意更改,否则会出现各种问题 runner.setAutoCommit(true);//自动提交 runner.setFullLineDelimiter(false); runner.setDelimiter(";");////每条命令间的分隔符 runner.setSendFullScript(false); runner.setStopOnError(false); // runner.setLogWriter(null);//设置是否输出日志 //如果又多个sql文件,可以写多个runner.runScript(xxx), runner.runScript(new InputStreamReader(new FileInputStream(sqlFilePath),"utf-8")); close(conn); } catch (Exception e) { LOG.error("执行sql文件进行数据库创建失败....",e); error = e; }finally{ close(conn); } if(error != null){ throw error; } } public static void execSqlFileBySqlserver(String ip,String port,String userName, String pwd,String sqlFilePath,String dbName) throws Exception{ String driver = "net.sourceforge.jtds.jdbc.Driver"; String url = "jdbc:jtds:sqlserver://"+ip+":"+port; Exception error = null; Connection conn = null; try { replaceAndCreate(f1,f2,oldDbName,newDbName); Class.forName(driver); conn = DriverManager.getConnection(url, userName, pwd); ScriptRunner runner = new ScriptRunner(conn); //下面的配置,不要随意更改,否则导致各种问题 runner.setAutoCommit(true);//自动提交 runner.setFullLineDelimiter(true); runner.setDelimiter("GO");//每条命令间的分隔符 runner.setSendFullScript(false); runner.setStopOnError(false); // runner.setLogWriter(null);//设置是否输出日志 //如果又多个sql文件,可以写多个runner.runScript(xxx), runner.runScript(new InputStreamReader(new FileInputStream(sqlFilePath),"utf8")); } catch (Exception e) { LOG.error("执行sql文件进行数据库创建失败....",e); error = e; }finally{ close(conn); //删除文件 deleteFile(f2); } if(error != null){ throw error; } } private static void close(Connection conn){ try { if(conn != null){ conn.close(); } } catch (Exception e) { if(conn != null){ conn = null; } } } } |
新春佳节到。祝好!祝好!
不错不错!内容感觉好极了!