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.导出数据和表结构(以管理员身份运行): ------------------------------------ ...
随机推荐
- spring mvc Response header content type
Xml代码 <bean class ="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAd ...
- react navigation goBack()返回到任意页面(不集成redux) 二
实现思路: A -- > B (获取A的key值,传至C)-- >C(获取B传来的A页面key值,传至D) -- >D(获取C传来的A页面key值&C页面的key值,传至下一 ...
- Java第三次作业第二题
2. [请复制本程序,作为java程序代码,进行编译,补充填写缺失代码部分,并实现题目要求功能,从而获得空白填写所需的内容.] 定义3个线程,模拟红绿灯的效果 一个线程控制画一个实心红圆 一个线程控制 ...
- SpringBoot整合redis缓存(一)
准备工作 1.Linux系统 2.安装redis(也可以安装docker,然后再docker中装redis,本文章就直接用Linux安装redis做演示) redis下载地址: 修改redis,开启远 ...
- ogeek线下赛web分析1-python-web
1.python from flask import Flask, request, render_template,send_from_directory, make_response from A ...
- go语言 链表练习
package main import "fmt" //定义节点 type Node struct { Data int Next *Node } /* * 返回第一个节点 * h ...
- [Advanced Python] 13 - "Decorator": syntactic sugar
单独一章复习:Python 函数装饰器,廖雪峰讲装饰器 基本概念 函数作为变量 从函数中返回函数 子函数写在外面貌似也可以,可这样就少了“封装性”. def greet(): return " ...
- 浏览器兼容性知识&测试计划&测试报告
浏览器兼容性知识&测试计划&测试报告 浏览器兼容性问题:网页或网站兼容性问题,因为不同浏览器使用内核及所支持的HTML(标准通用标记语言下的一个应用)等网页语言标准不同:以及用户客户端 ...
- WPF中资源的引用方法
一.引用同一个程序中的资源 1.使用相对Uri来引用资源,如下所示 img.Source=new BitmapImage(new Uri(@"d"\iamges\Backgroun ...
- Spring MVC-从零开始-view-forward、redirect
1.forward或redirect后,不再走viewResolver过程,直接重新从控制器开始 2.代码 package com.jt; import org.springframework.ste ...