19.3 Java备份与还原MySQL数据库
在Java语言中可以执行mysqldump命令来备份MySQL数据库,也可以执行mysql命令来还原MySQL数据库。本节将为读者介绍Java备份与还原MySQL数据库的方法。
19.3.1 Java备份MySQL数据库
通常使用mysqldump命令来备份MySQL数据库。其语句如下:
mysqldump -u usemame -pPassword dbname table1 table2 ... > BackupName.sql
其中,usemame参数表示登录数据库的用户名;Password参数表示用户的密码,其与-p之间不能用空格隔开;dbname参数表示数据库的名称;tablel和table2参数表示表的名称,没有该参数时将备份整个数据库;BackupName.sql参数表示备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库备份成一个后缀名为sql的文件。有关备份 MySQL数据库的详细内容见16.1.1小节。 Java语言的Runtime类中的exec()方法可以运行外部命令。调用exce()方法的代码如下:
Runtime rt=Runtime.getRuntime(); rt.exec("命令语句");
Java备份MySQL数据库时,使用exec()方法来执行mysqldump命令。使用exec()法时要进行异常处理。
【示例19-7】下面是Windows操作系统下Java备份MySQL数据库。部分代码如下:
String str="mysqldump -u root -phuang ~opt test > c:/test.sql";//将mysqldump命令的语句赋值给str Runtime rt=Runtime_getRuntime();//创建 Runtime 对象 rt.exec("cmd /c"+str);//调用 exec()函数
上面代码可以将数据库test备份到C:\目录下的test.sql文件中。“--opt”选项可以提高备份的速度;“cmd”表示要使用cmd命令来打开DOS窗口; “/c”表示执行完命令后 关闭命令窗口。
说明:Windows操作系统下一定要加上cmd/c.因为Windows操作系统中,mysqldump命令是在DOS窗口中运行的。在Linux操作系统下,只有拥有root权限或者mysql权限的用户才可以执行这段代码。否则,Java代码执行时会出现异常。
19.3.2 Java还原MySQL数据库
通常使用mysql命令来还原MySQL数据库。其语句如下:
mysql -u root -p [dbname] < backup.sql
其中,dbnaem参数表示数据库名称。该参数是可选参数,可以指定数据库名,也可以不指定。指定数据库名时,表示还原该数据库下的表。不指定数据库名时,表示还原特定的一个数据库。而备份文件中有创建数据库的语句。有关还原MySQL数据库的详细内容见16.2.1小节。
Java还原MySQL数据库与备份MySQL数据库的原理是一样的。Java还原MySQL数据库时,使用exce()方法来执行mysql命令。
【示例19-8】下面是Windows操作系统下Java还原MySQL数据库。部分代码如下:
String str="mysql -u root -phuang test < c:/test.sql"; //将 mysql命令的语句赋值给str Runtime rt=Runtime.getRuntime();//创建 Runtime 对象 rt.exec("cmd /c"+str);//调用exce()函数
上面代码可以将C:\目录下的test.sql文件中的数据还原到数据库test中。Windows操作系统下一定要加上cmd/c。