2013-10-27 65 views
0

我開始務實外部MySQL服務器通過以下方式導入/導出數據庫

StartMysqlServer.p =調用Runtime.getRuntime()。EXEC(「服務器/斌/ mysqld的--defaults文件=服務器/my.ini --standalone --console --basedir = server /「);

現在我想通過java code.i不知道這是可能的或不是這個可能嗎?建議任何答案。

回答

0

你似乎要使用的Java運行時執行你會在命令行中相同的語句,所以進口和出口以同樣的方式可以做:

進口

Runtime.getRuntime().exec(
    "mysql -uusername -ppassword < /path/to/fileToImportFrom.sql"); 

出口

Runtime.getRuntime().exec(
    "mysqldump -uusername -ppassword > /path/to/fileToExportTo.sql"); 

或者,您可以使用MySQL JDBC驅動程序連接到數據庫並以編程方式插入數據。使用像Spring的JdbcTemplate這樣的API可以減輕這種痛苦(0​​)。

+0

感謝您的回覆,但是當我使用下面的代碼,然後過程運行無限的時間。代碼是Process runtimeProcess; \t \t runtimeProcess = Runtime.getRuntime()。exec(「mysqldump -uroot -p> D:/fileToExportTo.sql」); \t int processComplete = runtimeProcess.waitFor();如果(processComplete == 0){ \t if(processComplete == 0){0} \t} else { \t \t System.out.println(「無法創建備份」); \t} – user2637538

+0

由於您使用'-p'但未提供密碼,因此該進程正在等待您提供MySQL密碼。嘗試在終端中運行相同的命令來查看我的意思。 – trf

+0

按照我的建議修改我的代碼,如下所示仍然運行無限的時間Runtime.getRuntime()。exec(「mysqldump -u root -p admin> D:/fileToExportTo.sql」); – user2637538