今天在网上看到一个哥们写的程序挺好,就是用java调mysql工具,实现数据库备份!但忘记在那个网站上看到的了。如果这个哥们看到我转载你的文章,请不要生气。
。
主要使用Runtime累的Exec方法。如果不了解这个类的话,去查一查JDK文档。
废话少说。看代码
/*
mysqldump备份同一个库的多个表
备份指定数据库的一个或者多个表,用法是:
mysqldump [options] DATABASE TABLE1 [TABLE2 TABLE 3...]
例如备份wordpress数据库的wp_posts表和wp_options表到wordpress_1.sql:
mysqldump -u root -p wordpress wp_posts wp_options > wordpress_1.sql
*/
public class JavaBackupMysql {
public static void main(String[] args) throws IOException {
JavaBackupMysql jmsql = new JavaBackupMysql();
jmsql.backup("backupDb1.sql");
}
public void backup(String sql) {
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("dataSource.properties");
Properties pros = new Properties();
try {
pros.load(inputStream);
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 这里是读取的属性文件,也可以直接使用
String username = pros.getProperty("dataSource.username");// 用户名
String password = pros.getProperty("dataSource.password");// 密码
String mysqlpaths = pros.getProperty("mysqlpath");// mysqldump.exe文件路径
String address = pros.getProperty("address");// 数据库地址
String databaseName = pros.getProperty("databaseName");// 要备份的数据库名
String tableName = pros.getProperty("backTable");// 要备份的表名(可选)
String sqlpath = pros.getProperty("sql");// 备份出来的sql地址,我这放到D盘下了
File backupath = new File(sqlpath);
if (!backupath.exists()) { // 如果有备份过的文件覆盖掉
backupath.mkdir();
}
StringBuffer sb = new StringBuffer();
sb.append(mysqlpaths);
sb.append("mysqldump ");
sb.append("--opt ");
sb.append("-h ");
sb.append(address);
sb.append(" ");
sb.append("--user=");
sb.append(username);
sb.append(" ");
sb.append("--password=");
sb.append(password);
sb.append(" ");
sb.append("--lock-all-tables=true ");
sb.append("--result-file=");
sb.append(sqlpath);
sb.append(sql);
sb.append(" ");
//sb.append("--default-character-set=utf8 ");
sb.append("--default-character-set=gb2312 ");//注意你的mysql数据库设置的字符集,要与这设置的一致否则,汉字会乱码。
sb.append(databaseName);
sb.append(" ");
sb.append(tableName);
//System.out.println(sb);
Runtime cmd = Runtime.getRuntime();
try {
Process p = cmd.exec(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
其实就是执行了
Runtime.getRuntime().cmd.exec("C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqldump --opt -h localhost --user=root --password=123456 --lock-all-tables=true --result-file=c:backupDb1.sql --default-character-set=gb2312 test student");
分享到:
相关推荐
在给定的标题“java调用mysql命令 导入导出数据库”中,我们可以理解为使用Java来执行MySQL的命令行工具,如`mysqldump`和`mysql`,来实现这些功能。下面将详细讲解如何在Java程序中调用这些命令。 首先,让我们...
下面将详细介绍如何通过CMD(命令提示符)和Java来使用mysqldump进行MySQL数据库的备份。 ### CMD备份 在Windows系统中,我们通常使用CMD(命令提示符)来执行mysqldump命令。首先,确保MySQL服务器已运行,并且...
在`DemoController.java`中,可能包含了一个处理数据库备份请求的控制器,它调用了相关的备份服务或工具。而`java实现数据库备份说明.txt`文件可能详细阐述了实现备份的具体步骤和技术细节,包括代码示例、配置说明...
在Java编程环境中,实现MySQL数据库备份通常涉及到操作系统命令行调用和文件操作。这段代码提供了一个名为`MySQLDatabaseBackup`的类,该类包含了将MySQL数据库导出为SQL文件的功能。下面将详细解释这个过程: 1. *...
通过上述介绍可以看出,使用Java调用`mysqldump`和`mysql`工具进行MySQL数据库的备份与恢复是一种简单有效的方法。不仅可以提高数据安全性,还能够通过编写脚本来实现自动化的数据备份与恢复流程,极大地提高了工作...
在Java中实现数据库备份,可能涉及到以下技术: 1. JDBC(Java Database Connectivity):Java访问数据库的标准接口,通过JDBC驱动与SQL Server建立连接,执行SQL语句进行备份。 2. SQL语句:例如使用`BACKUP ...
"javacmd数据库备份"这个主题聚焦于使用Java命令行工具(javacmd)进行数据库的备份操作。Java命令行工具通常指的是通过Java虚拟机(JVM)运行的程序,这些程序可以执行特定的任务,比如与数据库交互。下面我们将...
由于我们没有具体的源代码内容,以上分析基于一般性的数据库备份实现方式。实际的源码可能使用了特定的设计模式、库或者工具,例如Apache Commons IO用于文件操作,Log4j或SLF4J用于日志记录,或者Spring JDBC进行...
1. **数据库备份**: - **全量备份**:通常通过执行`mysqldump`命令生成SQL脚本或者直接导出二进制日志文件。在Java中,可以使用`Runtime.getRuntime().exec()`方法执行系统命令来调用`mysqldump`。例如,创建一个...
综上所述,提供的Java代码片段实现了跨平台的MySQL数据库备份功能,结合了操作系统API调用和数据库操作,是学习Java与数据库交互以及系统集成的一个实用示例。对于任何IT专业人员来说,理解和掌握这种技术都是至关...
MySQL数据库在日常运维中扮演着至关重要的角色,因此掌握如何进行完整备份、增量备份与还原是每个IT专业人员必备的技能。在这个主题中,我们将深入探讨如何使用Java来实现这些功能。 首先,让我们理解什么是数据库...
本文将详细讲解如何使用Java代码来实现Mysql数据库的备份。这个“通过Java代码备份Mysql数据库Demo”是一个简单的示例,旨在帮助开发者快速理解和实践这一功能,从而节省学习和调试的时间。 首先,我们需要了解Java...
MySQL数据库备份通常涉及到两种主要的方法:全量备份和增量备份。全量备份是复制整个数据库,而增量备份则仅备份自上次备份以来更改的数据。 首先,我们需要了解MySQL提供的命令行工具`mysqldump`,它用于创建...
数据库备份实现 ```java public void Put() throws IOException { String command = "mysqldump -h127.0.0.1 -uroot --opt test > c:/test.txt"; Runtime.getRuntime().exec("cmd /c " + command); System.out....
上述代码展示了如何使用Java来实现MySQL数据库的备份和还原操作。以下是对这些操作的详细解释: 首先,代码导入了多个Java库,包括`java.io`包下的类,用于处理输入/输出流,以及`java.util`包下的类,如`Date`和`...
总结起来,Java代码编程实现MySQL数据库的备份与导入涉及的主要知识点有: 1. 使用Java的Runtime类执行操作系统命令。 2. 对MySQL的`mysqldump`和`mysql`命令的理解和应用。 3. 数据库连接安全性和错误处理策略。 4....