利用Java进行MySql数据库的导入和导出
利用Java来进行Mysql数据库的导入和导出的总体思想是通过Java来调用命令窗口执行相应的命令。
MySql导出数据库的命令如下:
Sql代码
1.mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName > exportPath
mysqldump -uusername -ppassword -hhost -Pport exportDatabaseName > exportPath利用Java调用命令窗口执行命令来进行MySql导入数据库一般分三步走:
第一步:登录Mysql数据库,在登录数据库的时候也可以指定登录到哪个数据库,如果指定了则可以跳过第二步;
第二步:切换数据库到需要导入的目标数据库
第三步:利用命令开始导入
在进行导出的时候,需要注意命令语句的运行环境,如果已经将mysql安装路径下的bin加入到
系统的path变量中,那么在导出的时候可以直接使用命令语句,否则,就需要在执行命令语句的
时候加上命令所在位置的路径,即mysql安装路径想的bin下的mysqldump命令。
基本代码如下:
Java代码
1.import java.io.IOException;
2.import java.io.InputStream;
3.import java.io.OutputStream;
4.import java.io.OutputStreamWriter;
5.import java.util.Properties;
6.
7./**
8. * 在进行导出的时候,需要注意命令语句的运行环境,如果已经将mysql安装路径下的bin加入到
9. * 系统的path变量中,那么在导出的时候可以直接使用命令语句,否则,就需要在执行命令语句的
10. * 时候加上命令所在位置的路径,即mysql安装路径想的bin下的mysqldump命令
11. * @author andy
12. *
13. */
14.public class MySqlImportAndExport {
15.
16. public static void main(String args[]) throws IOException {
17. InputStream is = MySqlImportAndExport.class.getClassLoader().getResourceAsStream("jdbc.properties");
18. Properties properties = new Properties();
19. properties.load(is);
20.// MySqlImportAndExport.export(properties);//这里简单点异常我就直接往上抛
21. MySqlImportAndExport.importSql(properties);
22. }
23.
24. /**
25. * 根据属性文件的配置导出指定位置的指定数据库到指定位置
26. * @param properties
27. * @throws IOException
28. */
29. public static void export(Properties properties) throws IOException {
30. Runtime runtime = Runtime.getRuntime();
31. String command = getExportCommand(properties);
32. runtime.exec(command);//这里简单一点异常我就直接往上抛
33. }
34.
35. /**
36. * 根据属性文件的配置把指定位置的指定文件内容导入到指定的数据库中
37. * 在命令窗口进行mysql的数据库导入一般分三步走:
38. * 第一步是登到到mysql; mysql -uusername -ppassword -hhost -Pport -DdatabaseName;如果在登录的时候指定了数据库名则会
39. * 直接转向该数据库,这样就可以跳过第二步,直接第三步;
40. * 第二步是切换到导入的目标数据库;use importDatabaseName;
41. * 第三步是开始从目标文件导入数据到目标数据库;source importPath;
42. * @param properties
43. * @throws IOException
44. */
45. public static void importSql(Properties properties) throws IOException {
46. Runtime runtime = Runtime.getRuntime();
47. //因为在命令窗口进行mysql数据库的导入一般分三步走,所以所执行的命令将以字符串数组的形式出现
48.