Java執行mysql資料庫指令碼
阿新 • • 發佈:2019-01-27
/** * 執行SQL指令碼檔案 * @param ip MySQL資料庫所在伺服器地址IP * @param host 資料庫埠號 * @param userName 進入資料庫所需要的使用者名稱 * @param password 進入資料庫所需要的密碼 * @param databaseName 要匯入的資料庫名 * @param filePath SQL指令碼檔案目錄 * @param fileName SQL指令碼檔名稱 * @throws IOException */ public static void runSqlFile(String ip, String host, String userName, String password, String databaseName, String filePath, String fileName) throws IOException{ String cmdarray[] = { "mysql -h" + ip + " -P" + host + " -u" + userName + " -p" + password + " " + databaseName, "source " + filePath + fileName }; Runtime runtime = Runtime.getRuntime(); OutputStream os = null; OutputStreamWriter writer = null; try { Process process = runtime.exec("cmd /c " + cmdarray[0]);//cmd之後執行陣列的第一個條件進入資料庫 //執行了第一條命令以後已經登入到mysql了 os = process.getOutputStream(); writer = new OutputStreamWriter(os); writer.write(cmdarray[1]);//向圖形介面輸出第二第三條命令。中間 \r\n 作用是用來換行的, writer.flush(); } finally { try { if (writer != null) { writer.close(); } if (os != null) { os.close(); } } catch (IOException e) { e.printStackTrace(); } } }