问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 实现mysql数据导入导出

发布网友 发布时间:2022-04-30 03:59

我来回答

2个回答

懂视网 时间:2022-04-30 08:21

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 + " ");
            }
            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 + " ");
            }
            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();
        }

    }

}

 

本文转自:http://www.blogjava.net/zhaosoft/archive/2008/10/30/237514.html

Java实现Mysql数据导入导出

标签:

热心网友 时间:2022-04-30 05:29

弄个jdbc去读表写表,想灵活的对任何表都操作,不太现实
只是想导入和导出mysql的数据的话
直接用mysql本身的命令或者第三方工具去导
推荐个
工具MySQL
Administrator
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
阳光燕山学校是贵族学校吗 小米14ultra跌至新低 小米14ultra值得购买吗 马卡龙多少钱一个 马卡龙为什么那么贵 正宗马卡龙多少钱一个-马卡龙为什么这么贵 今年河北的迁西板栗多少钱一斤、生的 板栗什么时候上市能卖到几月呢? 6月份能买到新鲜板栗吗? 睡眠银行的生物信息专家林晨瀚讲座谁有听过,对他们的生物信息助眠方法讲 ... 材料力学实验简介 天下掉馅饼是什么意思 盒子与馅饼的区别? 日文馅饼是什么意思 馅饼英文怎么写 馅饼是什么结构类型的词语? pie,pasty和pastry有什么区别?越详细越好~ 丰都到葛洲坝自驾游从哪条路走? 建始到重庆318国道封路了吗? 重庆云阳到重庆渣滓泂多少公里 重庆到利川高速共多少公里 318国道重庆至武汉段现在的路况及收费怎么样?谢谢 重庆市碧山区到贵州贵阳有多少公里线路怎么走? 从上海自驾到重庆,我想走318国道。请问有多少收费站啊???大概需要多少过境费啊? 急求 国道G318宜昌至重庆路况 我是退休新手从上海沿318国道到重庆自驾,可能吗,路况怎么样? 上海重庆318国道线路 请问最近318国道的路况如何?准备国庆从重庆到稻城亚丁去,轿车非越野。 ,318国道经过重庆市铜梁区吗? 重庆市梁平县走318国道到四川省南充市的距离多少公里? 中国最美公路:318川藏南线险路变坦途轿车自驾都行 天下没有掉下来的馅饼是什么意思 pie 作馅饼的意思时可数吗 西班牙馅饼是什么意思? cream pie的意思是什么? 饸子和馅饼有什么区别、??? QQ如何申请号 天上掉馅饼什么意思? 什么是西班牙馅饼? 送馅饼是有什么含义吗 i7加速器的服务地址 怎么申请i7加速器服务器地址? i7怎么注册呀,谢谢 pinterest安卓手机怎么多开 怎样下载英特尔i7睿频加速器,和怎样装驱动?急急急急急 安卓手机怎样连上google drive 2015 snapchat为什么能取得成功 关于蓝魔i7s用安卓还是win8.1比较好,解决出 请问大神们或者是过来人i7_7700加gtx1050,8g内存再外加开加速器玩吃鸡能开中画质吗? 用了迅游加速器玩英雄联盟,反而经常掉线 玩魔兽世界。才配i7六核,2GDDR5显存显卡,8M电信为什么世界延迟经常很高?谢谢了,大神帮忙啊