Fork me on GitHub

将标准sql语句导入到数据库中

将转换为标准的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);
    }
}