`

java代码实现mysql导入导出

阅读更多
注意实现mysql导入导出必须配制好环境变量,例如:C:\Program Files\MySQL\MySQL Server 5.1\bin;否则将无法正常运行。
package cn.com;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class MySQLTest {

	public static void main(String[] args) {
        String config[] =new String[7];
        config[0] = "-uroot";        //用户名
        config[1] = "-proot";        //密码
        config[2] = "-hlocalhost";   //主机
        config[3] = "takoocomcn";    //数据库名
        config[4] = "f:/bjse22.sql"; //导出数据库路征 
        config[5] = "f:/bjse22.sql"; //导入数据库路征
        config[6] = "my";            //导入数据库名称
		backup(config);
	    load(config);
	}

	private static void backup(String config[]) {
		try    {
			               Runtime rt  =  Runtime.getRuntime();
			   
			                //  调用 mysql 的 cmd: 
			              Process child  =  rt
			                       .exec("mysqldump " + config[0] + " "+config[1]+" "+config[2]+" "+config[3]+" --set-charset=utf8"); //  --add-drop-table设置导出编码为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(config[4]);
			               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();
			           } 
	}	
	private static void load(String[] config) {
		              try {
		            	  String fPath = config[5];
		                  Runtime rt = Runtime.getRuntime();

		                  // 调用 mysql 的 cmd:
		                  Process child = rt.exec("mysql " + config[0] + " "+config[1]+" "+config[2]+" "+config[3]);

		            	  OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
		                  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");
//		                  }
		                  sb.append("use " + config[6] + ";\r\n");
		                  sb.append("source "+fPath);
		                  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导入导出Excel

    在Java编程环境中,将MySQL数据库的数据导入到Excel或者将Excel数据导出到MySQL是一项常见的任务。这涉及到对Java处理文件、数据库操作以及处理Excel数据的能力。以下是对这个主题的详细阐述: 1. **Java处理Excel*...

    java调用mysql命令 导入导出数据库

    在这个过程中,Java通过JDBC(Java Database Connectivity)接口与MySQL进行交互,利用MySQL提供的命令行工具如`mysqldump`和`mysql`来实现数据的导入导出。 首先,我们需要了解JDBC。JDBC是Java平台上的一个标准...

    导入导出mysql数据

    本篇文章将深入探讨如何通过 Java 代码实现 MySQL 数据库的导入与导出操作。 ### MySQL 数据库的导出(备份) #### 原理 MySQL 提供了 `mysqldump` 工具来实现数据库的导出功能,它可以将数据库中的数据和结构转换...

    JAVA实现数据库数据导入导出到Excel(POI)所需jar包

    在Java开发中,有时我们需要将数据库中的数据导出到Excel文件,或者从Excel文件...通过正确理解和使用POI库,你可以轻松地实现数据的导入导出,提升工作效率。记得在项目中引入正确的jar包,以确保所有功能的正常运行。

    java实现mysql数据库的表导出到excel文件

    本文将详细讲解如何使用Java实现从MySQL数据库的表导出到Excel文件的过程,以及涉及到的关键技术和工具。 首先,我们需要了解的是Java与数据库交互的基础——JDBC(Java Database Connectivity)。JDBC是Java API,...

    用JAVA导出MYSQL的数据

    本话题主要探讨如何使用Java程序导出MySQL数据库中的数据。以下将详细讲解相关概念和技术。 首先,导出MySQL数据最常用的方式是通过命令行工具`mysqldump`。`mysqldump`是一个实用程序,它能备份MySQL数据库,生成...

    javatools数据导入导出工具

    JavaTools是一款基于Java开发的数据导入导出工具,主要用于数据库管理和数据迁移工作。它提供了一种简单易用的图形用户界面,使得非编程人员也能轻松处理数据的导入与导出任务。在更新后的版本v1.0.5中,开发者对...

    使用Springboot实现excel的导入导出

    在Spring Boot中实现Excel的导入导出可以通过POI库来实现,POI是一个开源的Java库,用于处理Microsoft Office格式文件,包括Excel。一个简单的示例,演示如何在Spring Boot项目中使用POI来实现Excel的导入导出功能。...

    Java实现数据的导入导出

    本篇将详细探讨如何利用Java实现数据的导入导出,以及如何在不同系统之间进行数据迁移。 首先,我们来看"Java实现数据的导入导出"这一主题。在这个过程中,通常涉及两个主要步骤:数据导出和数据导入。数据导出是指...

    mysql 导入导出 sql文件

    ### MySQL导入导出SQL文件详解 #### 一、概述 MySQL作为一款广泛使用的开源关系型数据库管理系统,在数据管理和维护方面提供了强大的支持。其中,数据的导入导出是日常数据库管理中非常重要的环节之一。本文将详细...

    execl导入导出

    "Excel导入导出"这一主题涵盖了如何将数据从外部源导入到Excel工作表,以及如何将Excel数据导出到其他格式或系统中。以下是对这个主题的详细阐述: **一、Excel数据导入** 1. **CSV导入**:CSV(逗号分隔值)是一...

    java编写的数据库导入和导出工具

    - 数据导入导出可能涉及大量计算,使用多线程可以提高性能,避免阻塞用户界面。 6. **日志记录**: - 为了跟踪程序运行状态和错误,通常会使用如Log4j或SLF4J这样的日志框架。 7. **命令行参数处理**: - 如果...

    Spring3 MVC + POI 实现 Excel与MySQL 的导入导出

    综上所述,Spring3 MVC + POI 实现 Excel与MySQL 的导入导出是企业级应用中的常见技术组合,通过合理的设计和实现,可以有效地提高数据处理的效率和灵活性。开发者应当熟练掌握Spring MVC的控制器设计、服务层业务...

    java实现Excel数据导入到mysql数据库.zip

    总结来说,这个项目涵盖了Java编程、文件操作(尤其是Excel处理)、数据库连接与操作(通过JDBC和SQL)以及数据导入导出策略等多个IT核心技能。对于学习和提升这些技能,这个项目提供了一个很好的实践平台。

    java自动导入导出

    - SQL语句如`SELECT INTO OUTFILE`和`LOAD DATA INFILE`可用于MySQL等数据库的批量导入导出,但在Java程序中通常通过JDBC执行这些SQL来实现自动化。 3. **Linux环境下的Java程序**: - Java程序是跨平台的,因此...

    MySQL 快速导入导出

    自己用JAVA做的第一个swing程序,用来快速导入导出MySQL数据库,导入整个库6万条数据只需要5秒钟,处女作 见笑了。 使用方法:需要系统支持JAVA环境并安装了MySQL,直接运行MySQLdump.jar,填好相应设置项,点击...

    JAVA跨数据库导出导入数据:SQL2000 导入到 MYSQL(附件)

    本话题聚焦于如何使用JAVA来实现SQL Server 2000中的数据导出并导入到MySQL的过程。这是一个涉及多平台兼容性和数据转换的问题,通常需要特定的工具或自定义代码来完成。 首先,SQL Server 2000是微软提供的一个...

    MySQL数据库快速导入导出

    自己用JAVA做的第一个swing程序,用来快速导入导出MySQL数据库,导入整个库6万条数据只需要5秒钟,处女作 见笑了。 使用方法:需要系统支持JAVA环境并安装了MySQL,直接运行DBdump.jar,填好相应项,按步骤导入导出...

Global site tag (gtag.js) - Google Analytics