`
lishumingwm163.com
  • 浏览: 336782 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

mysql java 流导入方式

阅读更多
String command = "cmd /c C:/Program Files/MySQL/MySQL Server 5.0/bin>mysqldump -h localhost -u root -p aijia > E:/aijia.dmp";
  try {
   Process process = Runtime.getRuntime().exec(command);
   InputStreamReader ir = new InputStreamReader(process
     .getInputStream());
   LineNumberReader input = new LineNumberReader(ir);
   String line;
   while ((line = input.readLine()) != null)
    System.out.println(line);
   input.close();
  } catch (IOException e) {
   e.printStackTrace();
  }








首先,设置mysql的环境变量(在path中添加%MYSQL_HOME%\bin),重启电脑。
完整代码:
    /**
     * @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 bjse act_obj");// 设置导出编码为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:/mysql-5.0.27-win32/bin/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:/mysql-5.0.27-win32/bin/bjse22.sql";
            Runtime rt = Runtime.getRuntime();

            // 调用 mysql 的 cmd:
            Process child = rt.exec("mysql -u root bjse ");
            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();
        }

    }
分享到:
评论

相关推荐

    mysql java JDBC 导入资源包mysql-connector-java-5.1.48

    MySQL是世界上最流行的开源关系型数据库管理系统之一,而Java是一种广泛使用的多平台开发语言,两者结合使用,通过Java Database Connectivity (JDBC) API,可以实现Java应用程序与MySQL数据库之间的交互。...

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

    在Java编程中,调用MySQL命令来导入和导出数据库是一种常见的操作,这涉及到数据库管理、数据迁移或者备份恢复等场景。在这个过程中,Java通过JDBC(Java Database Connectivity)接口与MySQL进行交互,利用MySQL...

    java实现excel到mysql数据的导入实例

    在Java编程环境中,将Excel数据导入到MySQL数据库是一项常见的任务,尤其在数据处理、数据分析或者系统集成时。本文将详细讲解如何使用Java实现这一过程,包括读取Excel文件、建立对应的MySQL表结构以及数据的迁移。...

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

    本项目"java实现Excel数据导入到mysql数据库"旨在利用Java技术将Excel表格中的数据高效地导入到MySQL数据库,并且在数据库中存在相同数据时进行更新,同时也支持将数据库中的数据导出到Excel表中。这个过程涉及到多...

    利用java 导入Excel表格数据到mysql数据库里,源码,直接导入eclipse就可以运行

    在Java开发中,将Excel表格数据导入MySQL数据库是一项常见的任务,尤其在数据处理、数据分析以及系统集成等场景中。这个项目提供了一套完整的源码,可以直接在Eclipse环境中运行,帮助开发者快速实现这一功能。下面...

    java编程excel导入MySQL.pdf

    Java 编程Excel 导入 MySQL 知识点 简介 本文档主要讲述了如何使用 Java 编程语言将 Excel 文件导入到 MySQL 数据库中。该过程涉及到 Excel 文件的读取、数据提取、数据库连接和数据INSERT 操作。 Java 读取 Excel...

    Java实现mysql导入导出Excel

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

    导入导出mysql数据

    知识点:MySQL 数据库的导入与导出操作及 Java 实现 在 IT 行业中,数据库的管理和维护是一项至关重要的工作。特别是在 MySQL 这样的流行关系型数据库管理系统中,数据的备份与恢复变得尤为重要。本篇文章将深入...

    java使用javacsv读取csv文件 导入Mysql数据库

    在Java编程中,将CSV(逗号分隔值)文件的数据导入到MySQL数据库是一项常见的任务。这个过程涉及几个关键步骤,包括读取CSV文件、解析数据、建立与数据库的连接以及执行SQL插入语句。本篇文章将详细讲解如何使用java...

    java excel导入mysql的demo

    Java Excel导入MySQL是一个常见的数据处理任务,特别是在数据分析和批量数据录入场景中。在这个示例中,我们使用了Maven作为项目构建工具,并结合了jxl库来读取Excel文件,然后将数据导入到MySQL数据库中。以下是这...

    java读取xml文件导入到mysql数据库中

    xml文件导入到mysql数据库中,包括文件:ConnectionUtils.java,InsertDT.java,db_mysql.properties,test01.xml,需要的jar包dom4j-1.6.1.jar,mysql-connection-java-3.1.1.3-bin.jar,jaxen-1.1-beta-7.jar

    Java读取Excel内容并导入MySQL

    这个场景描述的是一个典型的Java程序从Excel文件中读取数据,然后将这些数据导入到MySQL数据库的过程。下面我们将深入探讨这个过程涉及的技术点和实现步骤。 首先,Java用于读取Excel内容时,通常会用到Apache POI...

    Java 实现从Excel批量导入数据到MySQL

    Java作为一种强大的编程语言,提供了多种方式来实现Excel与MySQL之间的数据交互。本文将详细介绍如何利用Java实现从Excel批量导入数据到MySQL数据库。 首先,我们需要了解两个关键的库:Apache POI 和 JDBC。Apache...

    用java实现把excel数据导入到mysql数据库中.pdf

    Java 实现 Excel 数据导入到 MySQL 数据库 本文主要讲述如何使用 Java 语言将 Excel 数据导入到 MySQL 数据库中。下面将详细介绍相关知识点: 1. Java 读取 Excel 数据 Java 读取 Excel 数据是通过使用 JXL(Java...

    java自动导入导出

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

    Java连接MySQL的依赖包

    在Java编程中,连接MySQL数据库是一项基础且重要的任务。为了实现这一目标,开发人员需要引入特定的驱动程序,即MySQL的Java连接器(JDBC驱动)。在这个场景中,提到的"mysql-connector-java-5.1.7-bin.jar"正是这样...

    TXT文件数据导入到mysql数据库

    本主题聚焦于如何将TXT文件中的数据导入到MySQL数据库,这一过程对于数据迁移、数据备份或者数据分析等场景非常实用。首先,我们需要了解TXT文件的格式以及MySQL的数据类型,以便进行有效且准确的数据转换。 TXT...

    BeanSoft MySQL Java开发套装

    BeanSoft MySQL Java开发套装是一款专为Java开发者设计的工具集,它整合了MySQL数据库与Java开发的各个环节,旨在提升开发效率并简化数据库管理任务。在Java应用开发中,数据库的集成是不可或缺的一部分,而BeanSoft...

Global site tag (gtag.js) - Google Analytics