我想使用mysql
从java
数据库中获取特定于备份的表。
我使用它成功备份数据库。这里的数据库名称是art_school,表格是分支,类,员工。
batchCommand=mysqldump -h localhost --port 3306 -u root --add-drop-database -B art_school -r G:\Backup\Backup20150820175317.sql
从java
以及cmd执行。
但是对于备份特定表,
batchcommand=mysqldump -h localhost --port 3306 -u root art_school branch class employee > G:\Backup\BT20150820175319.sql
它在cmd上执行,但不是从java代码执行。
答案 0 :(得分:0)
将某些内容写入文件的>
符号仅在命令行中起作用。在Java中,您必须自己阅读命令的输出:
Process exec = Runtime.getRuntime().exec("ping localhost");
InputStream is = exec.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder builder = new StringBuilder();
for(String line=br.readLine(); line!=null; line=br.readLine()) {
builder.append(line);
builder.append('\n');
}
String text = builder.toString();
System.out.println(text);
然后,您可以将这些争议写入带有Java的文件。
或者,您可以将命令放在批处理文件(.bat)中,然后从Java运行该批处理文件。