java导入导出mysql数据

来源:互联网 发布:四川大学软件工程学院 编辑:程序博客网 时间:2024/06/11 18:20

最近在做数据库历史数据的导出备份,在网上找了好久资料,整理了一下。希望能帮助需要的人。

我做的内容如下:

1.导出数据库指定表中符合要求的部分数据的导出到.sql文件中,这个在网上很少有可用的代码。

2.将.sql文件中的表名改为表名+时间的格式。因为历史数据统一放在一个数据库,设置了定时任务后,防止同一张历史表的表名重复。

3.调用cmd命令将.sql文件导入指定的数据库。

代码只贴出核心代码,像定时任务等功能请根据需求自行添加!其中ReplaceWordUtil类就是第2步所用的类,此处就不放上来了,用到了简单的IO。

废话不多说,上代码。

public static void test(){// 导出String table = "t1";// 后期在配置文件中写要导入导出的表名,比如时间也可以String stmt1 = "cmd.exe /c  mysqldump  --tz-utc=0 -uroot -p123456 db库名 " + table+ " \"-w时间字段 >\'2016-09-17 13:00:00\'\" > d:/test1.sql";// 导入String filepath = "d://test1.sql"; // 备份的路径地址//新建数据库test// String stmt1 = "mysqladmin -uroot -p123456 create test";String stmt2 = "cmd /c mysql -uroot -p123456 emp < " + filepath;try {// 导出Runtime.getRuntime().exec(stmt1);Thread.sleep(3 * 1000);// 修改导出表的表名String date = date();ReplaceWordUtil rwu = new ReplaceWordUtil();rwu.iteratorDirectory("d://test1.sql", table, table + date);// 导入Runtime.getRuntime().exec(stmt2);} catch (Exception e) {e.printStackTrace();}}public static String date() {long time = System.currentTimeMillis();SimpleDateFormat sdf = new SimpleDateFormat("yyyy_MM_dd");Date date = new Date(time);return sdf.format(date);}


原创文章,转载请注明出处,谢谢!


0 0
原创粉丝点击