将转换为标准的sql文件导入到数据库中
/**
* 将标准sql脚本导入本地数据库,导入前需清空数据库
*
*/
public class SqlImp {
static Logger logger = Logger.getLogger(SqlImp.class);
public static String exec(String db,String driver,String url,String user,String password) {
String str = "";
try {
String jdbcUrl = url;
Class.forName(driver);
Connection conn = DriverManager.getConnection(jdbcUrl, user, password);
ScriptRunner runner = new ScriptRunner(conn);
Writer result = new StringWriter();
PrintWriter printWriter = new PrintWriter(result);
// runner.setLogWriter(printWriter);
runner.setErrorLogWriter(printWriter);
runner.setAutoCommit(true);
runner.setStopOnError(false);
// 构建流集合
Vector<InputStream> vector = new Vector<InputStream>();
InputStream standard = new FileInputStream(PathKit.getWebRootPath() + "/WEB-INF/dbsql/"+db+".sql");
// InputStream testdata = new
// FileInputStream(PathKit.getWebRootPath() + "/doc/testdata.sql");
vector.addElement(standard);
// vector.addElement(testdata);
Enumeration<InputStream> enu = vector.elements();
// 合并流
SequenceInputStream sis = new SequenceInputStream(enu);
InputStreamReader isr = new InputStreamReader(sis, "utf-8");
Reader reader = new BufferedReader(isr);
runner.runScript(reader);
str = result.toString();
}catch (IOException e) {
e.printStackTrace();
}catch (ClassNotFoundException e) {
logger.info(e.getMessage());
str="数据库驱动错误";
}catch (SQLException e) {
logger.info(e.getMessage());
str="数据库连接错误";
}
return str;
}
public static String stringToHexString(String strPart) {
String hexString = "";
for (int i = 0; i < strPart.length(); i++) {
int ch = (int) strPart.charAt(i);
String strHex = Integer.toHexString(ch);
hexString = hexString + strHex;
}
return hexString;
}
/**
* 执行sql文件
*
* @return
*/
public static String exec() {
String str = "";
PropertiesConfiguration myconfig;
try {
myconfig = new PropertiesConfiguration("myconfig.properties");
String db = myconfig.getString("db");
String jdbcUrl = myconfig.getString(db + "Url");
exec(db, jdbcUrl, myconfig.getString(db + "Driver"), myconfig.getString(db + "User"), myconfig.getString(db + "Password"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
return str;
}
public static void main(String[] args) {
MyConfig mc = new MyConfig();
mc.initConsole();
String str = exec();
System.out.println(str);
}
}
