標籤:localhost java小程式 windows import public
今天試著寫了一個java小程式,功能是調用windows下的mysqldump對某個資料庫進行備份,代碼如下,注意紅色部分.
import java.sql.*;
import java.io.*;
public class MqldumpTest {
public static void main(String[] args) {
try {
String url = "jdbc:mysql://localhost/hxl";
String user = "root";
String pwd = "mysql";
// 載入驅動,這一句也可寫為:Class.forName("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver").newInstance();
// 建立到MySQL的串連
Connection conn = DriverManager.getConnection(url, user, pwd);
// 執行SQL語句
Statement stmt = conn.createStatement();// 建立語句對象,用以執行sql語言
ResultSet rs = stmt
.executeQuery("select schema_name db_name from information_schema.SCHEMATA where schema_name=‘hxl‘ ");
// 處理結果集
while (rs.next()) {
String l_db_name = rs.getString("db_name");
System.out.println(l_db_name);
String command = "cmd /C mysqldump -h localhost -uroot -pmysql --default-character-set=gbk --single-transaction --databases hxl>E:\\mysqlbak\\hxl_bak_20140915.sql" ;
System.out.println(command);
Runtime r = Runtime.getRuntime();
Process p = r.exec(command);
}
rs.close();// 關閉資料庫
conn.close();
} catch (Exception ex) {
System.out.println("Error : " + ex.toString());
}
}
}
如上程式執行成功了,但問題是產生的備份檔案是0位元組,這裡mysqldump是自己調用mysql安裝路徑下的C:\Program Files\MySQL\MySQL Server 5.5\bin,網上查了說是路徑有空格的問題,我試著將mysqldump.exe拷貝一份到c:\mysqldump\目錄下,確保該路徑沒有空格,然後修改java代碼裡的代碼,之間指定運行C:\mysqldump\mysqldump.exe,修改如下
String command = "cmd /C C:\\MOTOR OIL\\mysqldump -h localhost -uroot -pmysql --default-character-set=gbk --single-transaction --databases hxl>E:\\mysqlbak\\hxl_bak_20140915.sql" ;
再次運行後,正常產生了備份檔案.
-- The End --
java調用mysqldump生產備份檔案為空白的問題