package com.backup;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
/*
* 备份和导入是一个互逆的过程。
* 备份:程序调用mysql的备份命令,读出控制台输入流信息,写入.sql文件;
* 导入:程序调用mysql的导入命令,把从.sql文件中读出的信息写入控制台的输出流
* 注意:此时定向符">"和"<"是不能用的
*/
//backup();
//load();
}
/**
* 备份检验一个sql文件是否可以做导入文件用的一个判断方法:把该sql文件分别用记事本和ultra
* edit打开,如果看到的中文均正常没有乱码,则可以用来做导入的源文件(不管sql文件的编码格式如何,也不管db的编码格式如何)
*/
public static void backup() {
try {
Runtime rt = Runtime.getRuntime();
// 调用 mysql 的 cmd:
Process child = rt
.exec("mysqldump -u root --set-charset=utf8 pj");// 设置导出编码为utf8。这里必须是utf8
// 把进程执行中的控制台输出信息写入.sql文件,即生成了备份文件。注:如果不对控制台信息进行读出,则会导致进程堵塞无法运行
InputStream in = child.getInputStream();// 控制台的输出信息作为输入流
InputStreamReader xx = new InputStreamReader(in, "utf8");// 设置输出流编码为utf8。这里必须是utf8,否则从流中读入的是乱码
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
// 组合控制台输出信息字符串
BufferedReader br = new BufferedReader(xx);
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
// 要用来做导入用的sql目标文件:
FileOutputStream fout = new FileOutputStream(
"e:/bjse22.sql");
OutputStreamWriter writer = new OutputStreamWriter(fout, "utf8");
writer.write(outStr);
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
in.close();
xx.close();
br.close();
writer.close();
fout.close();
System.out.println("/* Output OK! */");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 导入
*
*/
public static void load() {
try {
String fPath = "e:/bjse22.sql";
Runtime rt = Runtime.getRuntime();
// 调用 mysql 的 cmd:
Process child = rt.exec("mysql -u root pj ");
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(fPath), "utf8"));
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
writer.write(outStr);
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
out.close();
br.close();
writer.close();
System.out.println("/* Load OK! */");
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
在给定的标题“java调用mysql命令 导入导出数据库”中,我们可以理解为使用Java来执行MySQL的命令行工具,如`mysqldump`和`mysql`,来实现这些功能。下面将详细讲解如何在Java程序中调用这些命令。 首先,让我们...
在Java编程环境中,将MySQL数据库的数据导入到Excel或者将Excel数据导出到MySQL是一项常见的任务。这涉及到对Java处理文件、数据库操作以及处理Excel数据的能力。以下是对这个主题的详细阐述: 1. **Java处理Excel*...
在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件...通过正确理解和使用POI库,你可以轻松地实现数据的导入导出,提升工作效率。记得在项目中引入正确的jar包,以确保所有功能的正常运行。
与导出类似,MySQL 提供了 `mysql` 工具用于将 SQL 脚本文件导入到数据库中,从而实现数据的恢复。在 Java 程序中,同样可以通过调用系统命令的方式来执行 `mysql` 命令。 #### Java 实现 在 `DBBackupHelper` 类中...
然而,有时我们需要在Java程序中实现数据导出功能。这通常涉及使用Java的`Runtime.getRuntime().exec()`方法来执行系统命令。以下是一个简单的Java示例,展示了如何调用`mysqldump`命令来导出数据: ```java ...
本篇将详细探讨如何利用Java实现数据的导入导出,以及如何在不同系统之间进行数据迁移。 首先,我们来看"Java实现数据的导入导出"这一主题。在这个过程中,通常涉及两个主要步骤:数据导出和数据导入。数据导出是指...
本文将详细讲解如何使用Java实现从MySQL数据库的表导出到Excel文件的过程,以及涉及到的关键技术和工具。 首先,我们需要了解的是Java与数据库交互的基础——JDBC(Java Database Connectivity)。JDBC是Java API,...
JavaTools是一款基于Java开发的数据导入导出工具,主要用于数据库管理和数据迁移工作。它提供了一种简单易用的图形用户界面,使得非编程人员也能轻松处理数据的导入与导出任务。在更新后的版本v1.0.5中,开发者对...
总结来说,这个项目涵盖了Java编程、文件操作(尤其是Excel处理)、数据库连接与操作(通过JDBC和SQL)以及数据导入导出策略等多个IT核心技能。对于学习和提升这些技能,这个项目提供了一个很好的实践平台。
综上所述,Spring3 MVC + POI 实现 Excel与MySQL 的导入导出是企业级应用中的常见技术组合,通过合理的设计和实现,可以有效地提高数据处理的效率和灵活性。开发者应当熟练掌握Spring MVC的控制器设计、服务层业务...
在Spring Boot中实现Excel的导入导出可以通过POI库来实现,POI是一个开源的Java库,用于处理Microsoft Office格式文件,包括Excel。一个简单的示例,演示如何在Spring Boot项目中使用POI来实现Excel的导入导出功能。...
本项目结合了Spring Boot、MyBatis、Apache POI和MySQL,实现了Excel数据的导入导出功能,这对于数据处理和分析尤其有用。下面我们将深入探讨这些技术及其在项目中的应用。 首先,Spring Boot以其“约定优于配置”...
本话题聚焦于如何使用JAVA来实现SQL Server 2000中的数据导出并导入到MySQL的过程。这是一个涉及多平台兼容性和数据转换的问题,通常需要特定的工具或自定义代码来完成。 首先,SQL Server 2000是微软提供的一个...
4. **数据库导出**:通过“发布为Web服务”或VBA编程,可以将Excel数据导出到数据库,实现数据同步。 5. **其他格式导出**:Excel还支持导出为HTML、图片、Word文档等多种格式,满足不同需求。 **三、Web...
当涉及到不同数据库系统间的数据交互,如从SQL Server到MySQL,JAVA作为一种强大的后端编程语言,提供了丰富的库和工具来实现跨数据库服务器的数据导出和导入功能。本文将深入探讨如何使用JAVA来实现这一目标。 ...
通过熟练掌握这些工具和技术,开发者能够高效地完成数据导入导出任务,提升工作效率。在实际项目中,还可以根据具体需求进行优化,如添加缓存机制、错误日志记录等,以提升系统的稳定性和用户体验。
在IT行业中,数据导入导出是一项常见的任务,特别是在企业级应用中,用户可能需要将大量数据从数据库导出为Excel格式,以便于分析、编辑,然后再导入回数据库进行更新或新增。阿里开源的EasyExcel工具结合SpringBoot...
不错,得到一些启发,后来在网络上又找了一些学习资源,自己做了个mysql与excel自动导入导出的普通JAVA工具类!谢谢分享资源啊! 在网上找了一些学习资源,自己照着做了一个mysql与excel数据互想导入导出的例子,...