@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文件的更多相关文章

  1. mysql进阶(十三)命令行导出导入数据库

    MySQL命令行导出导入数据库 MySQL命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd D:\Program Files\ ...

  2. 第二百九十节,MySQL数据库-MySQL命令行导出导入数据库,数据库备份还原

    MySQL命令行导出导入数据库,数据库备份还原 MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program ...

  3. 在mysql命令行下执行sql文件

    ***********在mysql命令行下执行sql文件*********** C:\Windows\system32>cd E:\MySQL\mysql-5.7.16-winx64\bin / ...

  4. MySQL命令行下执行sql文件(sql脚本)

    在mysql命令行下执行sql文件(sql脚本) mysql> source    sql文件完整路径 如: mysql> source   D:\\MySQL\\create.sql 文 ...

  5. mysql命令行导出导入,附加数据库

    MySQL命令行导出数据库:1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server ...

  6. mysql 命令行导出导入数据

    导出数据库(sql脚本)  mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p --databases db_name > test ...

  7. 使用Java命令行方式导入第三方jar包来运行Java程序的命令

    1.首先使用命令行进入到a.java所在的文件夹:(比如我的在D:\javaeeworkspace\SharedPS_WS\src\com\dyf\main 这样一个路径下,) d: 回车, cd D ...

  8. mysql 导出 导入sql 文件

    C:\Users\Eric>mysqldump -uroot -p      demo->数据库名 >  C:\Users\Eric\demo.sql    导出目录地址 导入 sq ...

  9. linux命令行下导出导入.sql文件

    一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构(以管理员身份运行): ------------------------------------ ...

随机推荐

  1. JSP官方文档(JavaServer Pages Specification)下载

    找了好久,终于找到官网的下载地址了.这样,就可以用一手的文档资料了! 下载地址:http://download.oracle.com/otndocs/jcp/jsp-2_3-mrel2-spec/ s ...

  2. 松软科技课堂:SQL-SELECT-INTO语句

    SQL SELECT INTO 语句可用于创建表的备份复件. SELECT INTO 语句 SELECT INTO 语句从一个表中选取数据,然后把数据插入另一个表中. SELECT INTO 语句常用 ...

  3. 高性能最终一致性框架Ray之基本概念原理

    一.Actor介绍 Actor是一种并发模型,是共享内存并发模型的替代方案. 共享内存模型的缺点: 共享内存模型使用各种各样的锁来解决状态竞争问题,性能低下且让编码变得复杂和容易出错. 共享内存受限于 ...

  4. Vue最全指令大集合————VUE

    # Vue指令大集合(无slot) #### 包含内容: 1. v-cloak2. v-html3. v-text4. v-bind5. v-show6. v-model7. v-for8. v-if ...

  5. 05:(H5*) node、npm、nrm

    目录: 1:NPM 2:CNPM 3:NRM 4:homebrew 5:具体指令 6: -g -S -D 1:NPM NPM的全称是Node Package Manager, 是一个NodeJS包管理 ...

  6. python小基础

    1.计算机基础知识 中央处理器 CPU 人的大脑 内存 缓存数据 临时记忆 硬盘 储存数据 永久记忆 什么是操作系统 ? 控制计算机工作的流程 什么是应用程序? 安装在操作系统之上的软件 2.pyth ...

  7. thymeleaf自定义标签方言处理

    项目背景:springboot+thymeleaf thymeleaf两种方式处理自定义标签:AbstractAttributeTagProcessor 和 AbstractElementTagPro ...

  8. 关于大脑与CPU的简单思考

    今天午休突发奇想的思考了大脑与cpu的差异,发现出了大脑是生物信号驱动的单核cpu而已(并行任务是时间片的调度,要额外的堆栈记忆或者物理如纸张的存储). 大脑永远是线性的逐行执行指令,执行期间无法判断 ...

  9. 利用sqlalchemy 查询视图

    这个问题 google 百度 中英文搜了一上午.最新的回答还是 7年前.最后自己靠着官方文档的自己改出来一个比较方便的方法 使用环境 python == 3.7.0 SQLAlchemy === 1. ...

  10. 基于 HTML5 和 WebGL 的地铁站 3D 可视化系统

    前言 工业互联网,物联网,可视化等名词在我们现在信息化的大背景下已经是耳熟能详,日常生活的交通,出行,吃穿等可能都可以用信息化的方式来为我们表达,在传统的可视化监控领域,一般都是基于 Web SCAD ...