java命令行导出、导入sql文件
@IocBean
public class SqlCommandModel{ //用户名
@Inject("java:$conf.get('jdbc.username')")
private String username;
//用户密码
@Inject("java:$conf.get('jdbc.password')")
private String password;
//从哪个主机导出数据库,如果没有指定这个值,则默认取localhost
@Inject("java:$conf.get('jdbc.host')")
private String host;
//使用的端口号
@Inject("java:$conf.get('jdbc.port')")
private String port;
// 路径是mysql中 bin 文件 的位置
@Inject("java:$conf.get('mysqlPath')")
private String mysqlPath; // 导出数据库名称
@Inject("java:$conf.get('jdbc.exportDatabaseName')")
private String exportMysqlDataBase; // 导入数据库名称
@Inject("java:$conf.get('jdbc.importDatabaseName')")
private String importDataBase; // # 用户名
// jdbc.username=root
// # 数据库密码
// jdbc.password=123456
// # localhost
// jdbc.host=127.0.0.1
// # 端口号
// jdbc.port=3306
// # mysql下的bin文件的路径 (linux)
// mysqlPath=usr/local/mysql/bin
//
// # 要导出的数据库名称
// jdbc.exportDatabaseName=bankmanaer
// # 要导入的目标数据库
// jdbc.importDatabaseName=bankmanaer /**
* 获取导出命令
* @param exportDatabaseName 表名称
* @param exportPath 导出路径
* @return
*/
public String getExportCommand(String exportDataTableName,String exportPath) { StringBuffer command = new StringBuffer();
//注意哪些地方要空格,哪些不要空格
command.append("mysqldump -u ").append(username).append(" -p").append(password)//密码是用的小p,而端口是用的大P。
.append(" -h").append(host).append(" -P").append(port).append(" ").append(exportMysqlDataBase + " ").append(exportDataTableName).append(" -r ").append(exportPath); // 如果是linux系统上则加上数据库路径
// command.append(mysqlPath).append("mysqldump -u ").append(username).append(" -p").append(password)//密码是用的小p,而端口是用的大P。
// .append(" -h").append(host).append(" -P").append(port).append(" ").append(exportMysqlDataBase + " ").append(exportDataTableName).append(" -r ").append(exportPath); return command.toString();
} // 得到 导入 数据库的命令
// 得到 导入数据 的 命令行语句
/**
*
* @param importPath 导入文件所在路径
* @return
*/
public String[] getImportCommand(String importPath) { //第一步,获取登录命令语句
String loginCommand = new StringBuffer().append("mysql -h").append(host).append(" -u ").append(username).append(" -p").append(password)
.append(" -P").append(port).toString();
//第二步,获取切换数据库到目标数据库的命令语句
String switchCommand = new StringBuffer().append("use ").append(importDataBase).toString();
//第三步,获取导入的命令语句
String importCommand = new StringBuffer(" source ").append(importPath).toString();
//需要返回的命令语句数组 String[] commands = new String[] {loginCommand, switchCommand, importCommand}; return commands;
} public static void main(String[] args) throws InterruptedException, IOException { SqlCommandModel sqlCommandModel = new SqlCommandModel(); String[] tables = new String[5]; // 这里其实是在命令窗口中执行的 command 命令行
List<Process> list = new ArrayList<>();
for (int i = 0; i < tables.length; i++) {
String exportCommand = sqlCommandModel.getExportCommand(tables[i], "D:\\" + tables[i] + ".sql");
Runtime runtime = Runtime.getRuntime();
// 这里其实是在命令窗口中执行的 command 命令行
list.add(runtime.exec(exportCommand));
}
//等待所有子进程处理完毕
for (Process process : list) {
while(process.waitFor() != 0){
;
}
} } }
java命令行导出、导入sql文件的更多相关文章
- mysql进阶(十三)命令行导出导入数据库
MySQL命令行导出导入数据库 MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd D:\Program Files\ ...
- 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原
MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...
- 在mysql命令行下执行sql文件
***********在mysql命令行下执行sql文件*********** C:\Windows\system32>cd E:\MySQL\mysql-5.7.16-winx64\bin / ...
- MySQL命令行下执行sql文件(sql脚本)
在mysql命令行下执行sql文件(sql脚本) mysql> source sql文件完整路径 如: mysql> source D:\\MySQL\\create.sql 文 ...
- mysql命令行导出导入,附加数据库
MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server ...
- mysql 命令行导出导入数据
导出数据库(sql脚本) mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p --databases db_name > test ...
- 使用Java命令行方式导入第三方jar包来运行Java程序的命令
1.首先使用命令行进入到a.java所在的文件夹:(比如我的在D:\javaeeworkspace\SharedPS_WS\src\com\dyf\main 这样一个路径下,) d: 回车, cd D ...
- mysql 导出 导入sql 文件
C:\Users\Eric>mysqldump -uroot -p demo->数据库名 > C:\Users\Eric\demo.sql 导出目录地址 导入 sq ...
- linux命令行下导出导入.sql文件
一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构(以管理员身份运行): ------------------------------------ ...
随机推荐
- 中文保存在properties乱码的解决
方法:将中文转换为Native/ASCII编码:(比较好的一种解决方法,也必须设置好properties的字符编码(utf-8):已经试验成功) 网站:http://tool.oschina.net/ ...
- CentOS 7安装后的一些工作记录
安装net-tools: yum install -y net-tools 安装epel源 yum install epel-release 安装fail2ban yum install fail2b ...
- MOOC 数据库系统笔记(二):数据库系统的基本结构及其演变发展
数据库系统的结构抽象与演变 数据库的标准结构 DBMS管理数据的三个层次 1.External Level = User Level 某一用户能够看到与处理的数据,全局数据中的某一部分 2.Conce ...
- vs加调试代码的正确姿势
为了方便,我们会在系统中加入一些调试代码,比如自动登录,这样会省掉很多精力时间,但用的姿势不对, 第一重姿势:打包注释 我看一些人在vs中加调试代码(比如自动登录),然后打包的时候注释掉,这样操作是省 ...
- VMbox 安装 LInux系统流程
STEP 1 文件--新建---(自定义高级)---(默认设置)---(稍后安装系统)---(Linux+选择版本)---(虚拟机名字+存放位置)---(处理器2+核数2)---(虚拟机内存)2G一般 ...
- MySql错误处理--错误代码和消息
附录B:错误代码和消息 目录 B.1. 服务器错误代码和消息 B.2. 客户端错误代码和消息 本章列出了当你用任何主机语言调用MySQL时可能出现的错误.首先列出了服务器错误消息.其次列出了客户端 ...
- mybatis-generator生成数据对象
mybatis-generator生成数据对象 步骤一:在pom文件中添加build的插件 <build> <finalName>doudou</finalName> ...
- 编程范式 --- 面向协议编程(Protocol Oriented Programming,简称POP)
面向协议编程(Protocol Oriented Programming,简称POP) 是Swift的一种编程范式,Apple于2015年WWDC踢出 在Swift的标准库中,能见到大量POP的影子 ...
- 解决AndroidKiller APK 反编译失败,无法继续下一步源码反编译!
报错背景 今天使用AndroidKiller V1.3.1,反编译一个APK,遇到如下报错: 当前 Apktool 使用版本:Android Killer Default APKTOOL 正在反编译 ...
- python习题作业合集(持续更新……)
作业: 1.简述位,字节关系 2.请写出“天才”分别用utf-8和gbk编码所占位数 3.如果有一个变量num = 14,请使用int的方法,得到改变量最少可以用多少个二进制位表示 4.写代码,有如下 ...