如何用java实现mysql数据库的导入导出啊,导出什么格式都行~ sql,或者xls的啊,经理新给我安排的任务,可是我想了两天也不会啊!急!!!求各位大虾们高手帮忙啊,给出现成的代码就行啦

解决方案 »

  1.   

    java调cmd,然后执行mysql导入导出命令
      

  2.   

    楼上说的不全啊..
    要使用CMD命令窗口首先的将MYSQL环境变量设置到操作系统中,这是第一步,
    导出MYSQL数据的命令如下:
     mysqldump -u root [-p password] database [table] > x.sql
      注:root的登录数据库的用户名;database为使用到的数据库;table为表名;x.sql为导出的sql脚本
    这样导出为一个SQL脚本文件,里面包括所有的建表语句与数据插入语句,
    而数据导入也差不多,给传入一个SQL脚本,语句如下:
    source d:/mysql.sql; 希望有用.
      

  3.   

    三条SQL搞定:show tables;遍历这个结果集,再对每个表查询详细信息
    desc tablename 
    取得表结构信息,select * from tablename
    取得数据 整理一下,形成一个文件,就可以了. 非常简单的.
      

  4.   

    LZ是要数据的导入导出 还是SQL脚本的导入导出啊?
    我想你是想要 数据的导入导出吧!
    无非是就是 JDBC嘛!从数据库查询数据 和添加数据!
    如果是导数据的话 我想那样的代码到处都有!
    找不到的话 我再给你!
    如果我说的不是你想要的,那你就当我没说!
      

  5.   

    Runtime.getRuntime().exec("mysqldump –uroot –p1234  test>f:\test.sql");
    这样写对嘛?我检查了一下F盘,没有生成test.sql文件啊,可是这个命令在cmd里运行就可以在F盘生成
    test.sql文件呢,在程序里就不对了?我哪里写的有问题嘛?
      

  6.   

    Runtime.getRuntime().exec("cmd.exe /c mysqldump –uroot –p1234  test>f:\test.sql");试试
      

  7.   

    public class mysqldao {  public static void main(String args[]) {     try {
           Runtime javaRuntime = Runtime.getRuntime();
           javaRuntime.exec("cmd.exe /C cmd /C mysqldump -u root -proot test>d:/test.sql");
         }catch(Exception e) {      }
      }}
    已编译通过
      

  8.   

    真的好感谢你!终于知道哪里错了,f:\test.sql和f:/test.sql是不一样的,在cmd下这两个都对,在程序里只能用后者,可是我还是不明白他们的区别呢!
      

  9.   

    麻烦您帮我看一下,Runtime.getRuntime().exec("cmd.exe /C  mysqldump –uroot –p1234  test>f:/test.sql");这个语句通过了,也在F盘生成了test.sql文件,可是里边是空的啊,怎么回事呢?在cmd中导出来的就是正常的,真是困难啊!!!
      

  10.   

    执行成功了,可是导出的文件按却是空的呜呜,在cmd中却是正常的
      

  11.   

    方法太多了!!多的说不完~~
    上面是一种方法,还有你可以把数据从数据库中读到javaBean中,然后序列化这个javaBean到硬盘上,导入的时候再反序列化这个文件,将其读回jvm中,然后再写回数据库。还有或者就是把你读出来的数据以你自己定义的格式写到文件中,或者用现成的生成Excel报表的jia包生成一个Excel出来,这样既能看又能导入导出,或者生成个xml文件也行~~很随意的。
      

  12.   

    你说的那么容易啊,可是我刚毕业我还不会呢!你能给我讲一下怎么生成Excel文件吗,还有怎么再把Execl中的数据导回数据库,求你了,是mysql数据库的
      

  13.   

    谢谢大家了,终于弄好了,把代码贴出来大家分享一下吧,谢谢大家的帮助!
     public class C {
      public   static   void   main(String[]  args){
      
      String statement ="cmd.exe /C  mysqldump  -uroot -p1234 test>f:/test.sql";
          try {
                 
                          Runtime.getRuntime().exec(statement);

     } 
                     catch (Exception e) 
                     {
       e.printStackTrace();
             }
             }
      }
    另外,我还想导出一个Excel文件啊,我试了一下,把test.sql改成test.Excel可以生成,不过表格里没有数据啊,怎么让数据按照数据库里的格式排列呢?希望大家踊跃帮忙哈~
      

  14.   

    这还不如直接用mysql导出,或直接jdbc导出
      

  15.   

    excel和mysql当中的数据编码不同,所以导到excel是必用jdbc了
      

  16.   

    导出成Excel需要用一个jar包,jxl,是专门用java生成Excel文件的。
    具体我给你说下怎么做吧,你先把数据从数据库中查询出来保存到javabean中,一条数据一个bean,然后放到list中。这边写一个专门写Excel文件的小工具类,把这个list传给它,在里面循环开,一条一条记录的写到Excel中去。具体的API和例子程序网上很多,自己去找找吧,baidu一下很多的~~
    怎么创建一个工作目录,怎么写数字,写文字,写图片等等API里都有方法,直接调用,传对参数就行。
      

  17.   

    http://baike.baidu.com/view/1327707.htm
      

  18.   


    你好,我也有个类似的问题,我从数据库中取出数据,放到list中,然后做循环从String content中返回,用buffer中的write(content);写道文本里了。
    http://topic.csdn.net/u/20091126/17/aaf8a21b-4b11-4057-9d8f-ec2c410b1b9a.html
    搂主问的应该也是这个问题,可以参考看看。
    但我现在想写道exl中,从网上找了些例子,可是jxl中的workbook用的write(content);报错不允许用string类型的,找来找去,也没找到合适的方法,请帮忙想想办法???
      

  19.   

    先不说excel了,我现在做的是一个桌面应用软件CS结构的项目,我要备份数据库,点击“备份数据”按钮之后想让它弹出来一个保存的框, 选择保存在哪个盘,并且默认保存的文件后缀名是.sql,再点击保存按钮,大家帮帮我吧,很烦!谢谢你们了!
     JFileChooser.showSaveDialog(主窗口);//我知道这个方法可以弹出保存框,但是什么时候执行下面这个类 啊,下面的类导出的路径还是固定的,怎么才能实现我想要的呢,给他传参数吗,怎么传呢?有好心人能帮助我嘛?
                   public class C { 
      public void  m(){ 
      
      String statement ="cmd.exe /C  mysqldump  -uroot -p1234 test>f:/test.sql"; 
          try { 
                
                          Runtime.getRuntime().exec(statement); } 
                    catch (Exception e) 
                    { 
      e.printStackTrace(); 
            } 
            } 
      } 
      

  20.   


    /**
     * 弹出保存对话框,获得保存路径和文件名,用户没有选择则返回null
     * @param parentFrame 父窗体
     * @return 文件名
     */
    public String getPath(Component parentFrame) {
    JFileChooser chooser = new JFileChooser();
    chooser.setCurrentDirectory(new File("D://"));// 默认打开路径
    // 设置过滤文件格式
    chooser.setFileFilter(new FileFilter() {
    public boolean accept(File file) {
    if (file.isDirectory()) {
    return true;
    }
    if (file.getName().endsWith(".sql")) {
    return true;
    }
    return false;
    }
    public String getDescription() {
    return "*.sql";
    }
    });
    int i = chooser.showSaveDialog(parentFrame);
    String fileName = null;
    if (JFileChooser.APPROVE_OPTION == i) {
    File file = chooser.getSelectedFile();
    if (file.exists()) {
    int t = JOptionPane.showConfirmDialog(parentFrame,
    "该文件已存在,是否覆盖?", "是否覆盖?", JOptionPane.OK_CANCEL_OPTION);
    if (t != JOptionPane.OK_OPTION) {
    return getPath(parentFrame);
    }
    }
    if (file.toString().endsWith(".sql")) {
    fileName = file.toString();
    } else {
    fileName = file.toString() + ".sql";
    }
    }
    return fileName;
    }
      

  21.   

    可不可以导出指定列的sql文件呢?
      

  22.   

    能不能导出指定列的sql文件?