Java进行数据库导出导入 亲测可用

/**
* @param hostIP ip地址,可以是本机也可以是远程
* @param userName 数据库的用户名
* @param password 数据库的密码
* @param savePath 备份的路径
* @param fileName 备份的文件名
* @param databaseName 需要备份的数据库的名称
* @return
*/
public static boolean backup(String hostIP, String userName, String password, String savePath, String fileName,
String databaseName) {
fileName +=".sql";
File saveFile = new File(savePath);
if (!saveFile.exists()) {// 如果目录不存在
saveFile.mkdirs();// 创建文件夹
}
if (!savePath.endsWith(File.separator)) {
savePath = savePath + File.separator;
}

//拼接命令行的命令
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("mysqldump").append(" --opt").append(" -h").append(hostIP);
stringBuilder.append(" --user=").append(userName).append(" --password=").append(password)
.append(" --lock-all-tables=true");
stringBuilder.append(" --result-file=").append(savePath+fileName).append(" --default-character-set=utf8 ")
.append(databaseName);
System.out.println(stringBuilder.toString());
try {
//调用外部执行exe文件的javaAPI
Process process = Runtime.getRuntime().exec(stringBuilder.toString());
if (process.waitFor() == 0) {// 0 表示线程正常终止。
return true;
}
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
return false;
}

/**
* @param filepath 数据库备份的脚本路径
* @param ip IP地址
* @param database 数据库名称
* @param userName 用户名
* @param password 密码
* @return
*/
public static boolean recover(String filepath,String ip,String database, String userName,String password) {

String stmt1 = "mysqladmin -h "+ip+" -u "+userName+" -p"+password+" create "+database;

//cmd /k在执行命令后不关掉命令行窗口  cmd /c在执行完命令行后关掉命令行窗口

String stmt2 = "cmd /k mysql -h "+ip+" -u"+userName+" -p"+password+" "+database+" < " + filepath;

try {
Runtime.getRuntime().exec(stmt1);
System.out.println(stmt1);

Runtime.getRuntime().exec(stmt2);

System.err.println(stmt2);
System.out.println("数据已从 " + filepath + " 导入到数据库中");
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}

原文地址:https://www.cnblogs.com/blogwangwang/p/10538159.html

时间: 2024-10-10 06:42:24

Java进行数据库导出导入 亲测可用的相关文章

java 调用webservcie ,自己亲测可用

第一次用 java 调webervice,网上看了很多博客,能用的没几个,综合几个博客,终于成功调用了. package com.casco.action;import org.apache.axis.client.Call; import org.apache.axis.client.Service; import javax.xml.namespace.QName; public class syncProjectData { public void syncProject(String p

Apache+Php配置(亲测可用)

引言: 在软件项目中,Maven提供了一体化的类库管理系统,非常实用.但是,如果新增的类库jar在网络上无法获取到,如何在本地按照Maven的规则添加进来呢?本文将通过一个小例子展示新增过程. 背景介绍: 一个Maven管理的Java项目,提供一个系统级别的POM.xml,其中定义了整个项目使用的类库. 需求: 需要添加一个自定义的类库到当前项目中.假定当前的类库文件名为:abc.jar.. 如何将类库添加进来? 1.  找到当前Maven的Repository类库位置 一般默认情况下,在win

C#读取Excel设置(亲测可用)

OpenFileDialog openFD = new OpenFileDialog(); openFD.FileName = ""; openFD.Filter = "xls|*.xls|xlsx|*.xlsx"; openFD.Title = "选择更新文件"; openFD.Multiselect = false; if (openFD.ShowDialog() == DialogResult.OK) { this.tbSelectFile

sqlite 删除表中重复数据(亲测可用)

例子:表名  Paper .通过字段PaperID查找重复数据. 1 --查询某表中重复的数据       select * from Paper group by PaperID having count(*)>1; 2--删除重复行数,只剩不重复的记录(rowid为sqlite自带字段)      delete from Paper where Paper.rowid not in (select MAX(Paper.rowid) from Paper group by PaperID);

VCL下最好的皮肤控件AlphaControls 9.05 完美支持XE6 亲测可用

在传统的vcl编程中,因自带的控件效果太过普通,为了更好的用户体验和视觉效果往往会使用第三方的一些皮肤控件,这样的皮肤控件百度上一搜一大把,但往往不了解自己不使用过直接下载下来也是没有用的,因为这要涉及到控件版本 ID工具版本 操作系统 等多方因素配合使用,只有实际测试使用过才可定性. 本文提供的一款控件是经过实际测试过的 测试环境:Windows7 32位 ,Delphi xe6, AlphaControls 9.05 下载链接:http://binstyle.7958.com/down_18

MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions -(亲测可用)

MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions - See more at: http://www.codegood.com/archives/129#sthash.dc3d3aib.dpuf http://www.codegood.com/archives/129 http://www.codegood.com/archives/4 MySQL-python 1.2.3 for Windows an

eclipse设置快捷键sysout+Alt+/后出System.out.println!亲测可用!

以前一直用myeclipse,没有这方面的顾虑,现在换到了eclipse,很多要自己设置了,比如很多快捷键. 最常用的,运行到sysout ,eclipse总是不自动补全,很是恼火!!! 现在终于找到了可用的办法,解决方案如下: 需要重新设置快捷键. 按快捷键ctrl+shirt+L,然后在按一下L.设置快捷键的对话框就出来了,然你将Word Completion移除,在将Content Assist 这个设置为alt+/.就可以了. 希望对你有帮助!!! 本人个人网站:灵异事件 www.lie

Sublime Text3注册码,亲测可用

将以下复制在输入框即可 ,亲测可用 . 不过还是希望大家多多支持正版 . -– BEGIN LICENSE -– TwitterInc 200 User License EA7E-890007 1D77F72E 390CDD93 4DCBA022 FAF60790 61AA12C0 A37081C5 D0316412 4584D136 94D7F7D4 95BC8C1C 527DA828 560BB037 D1EDDD8C AE7B379F 50C9D69D B35179EF 2FE898C4

CSS响应式:根据分辨路加载不同CSS的几个方法,亲测可用

有时候你需要把同一个页面在手机和pc同时打开,其中有一个办法就是判断不同分辨路加载不同的css 小编总结了几种分别加载css的方法: 1.比较复杂的使用js判断加载不同css (亲测可用) 但是这种方法只有最开始的时候会判断,如果你拖动浏览器大小是不会发生改变的(当然如果喜欢拖着玩的话) 1 <link rel="stylesheet" type="text/css" id="links" href="../css/m_wuqin