2013-10-27 156 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