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.导出数据和表结构(以管理员身份运行): ------------------------------------ ...
随机推荐
- 超级密码(BFS)
Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进 ...
- charles 代理设置
本文参考:charles 代理设置 charles的代理身份配置区域 这里应该没啥好说的了, window/MAXCos proxy 是charles的代理启用开关: 如果你选中,则表示电脑使用cha ...
- Windows导出文件夹中的文件名列表
在需要导出的目录中,shift+右键,打开cmd或者powershell 运行命令:dir -name >list.txt 刷新文件夹,打开list.txt
- 部署Tomcat 环境
部署Tomcat 环境(mysql+tomcat+jdk) 1.下载Tomcat 软件包 2.通过xftp创建root 连接,然后将Tomcat 软件包拖拽到/opt目录下 3.在xshell 上ro ...
- [转]Linux下 tar.xz格式文件的解压方法
现在很多找到的软件都是tar.xz的格式的,xz 是一个使用 LZMA压缩算法的无损数据压缩文件格式. 和gzip与bzip2一样,同样支持多文件压缩,但是约定不能将多于一个的目标文件压缩进同一个档案 ...
- Hibernate 中setResultTransformer使用
在使用hibernate框架,查询数据库多张表或者单张表的某几个需要的字段数据时,往往只能通过sql语句配合setResultTransformer将查询到的数据封装到一个map集合中,再将map集合 ...
- layui table异步调用数据的时候,数据展示不出来现象解决方案
最近使用layui table进行异步获取数据并填充的时候,控制台打印出数据长度为0,但是其中还有数据,网上找了很多办法,下边是我最后使用的. 一般,render渲染表格是独立的书写格式,但是我在做数 ...
- css实现斜角效果
重点代码: 使用一张图片盖住div,实现斜角效果 .triangle { position: absolute; top:; left:; width: 36px; height: 36px; bac ...
- DP动态规划———LCS最长公共子序列
递推公式: ]==b[j-]) { dp[i][j]=dp[i-][j-]+; } else { dp[i][j]=max(dp[i-][j],dp[i][j-]); } 完整模板代码: int LC ...
- 基于 HTML5 WebGL 的垃圾分类系统
前言 垃圾分类,一般是指按一定规定或标准将垃圾分类储存.分类投放和分类搬运,从而转变成公共资源的一系列活动的总称.分类的目的是提高垃圾的资源价值和经济价值,力争物尽其用.垃圾在分类储存阶段属于公众的私 ...