【问题标题】:java - mysql - select query outfile - where is file getting savedjava - mysql - 选择查询输出文件 - 文件保存在哪里
【发布时间】:2010-12-25 15:26:51
【问题描述】:

使用 jdbc 从 java 连接到 mysql 数据库。 声明一个查询

String query = 
                    "SELECT *"+
                    "FROM tt2"+
                    "INTO OUTFILE 'DataFormatted.csv'"+
                    "FIELDS TERMINATED BY ','"+
                    "ENCLOSED BY '\"'" +
                    "LINES TERMINATED BY '\n'";

使用 executQuery(query) 执行查询。

如何修改上述代码,将DataFormatted.csv保存到c盘根目录

【问题讨论】:

  • 我认为这个query 根本不起作用:行之间缺少分隔符(空格)。串联查询为"SELECT *FROM tt2INTO OUTFILE 'DataFormatted.csv'FIELDS TERMINATED BY ','ENCLOSED BY '\"'LINES TERMINATED BY '\n'"
  • 你是对的..我最后把空格放了

标签: java mysql sql into-outfile


【解决方案1】:

文件保存在哪里。

在 MySQL 服务器的当前工作目录中。它是哪一种取决于 MySQL 服务器是如何执行和配置的。最好是将 CSV 文件的位置更改为固定位置。

如何更改上述代码,将 DataFormatted.csv 保存到 C 盘根目录

只需将'DataFormatted.csv' 更改为'C:/DataFormatted.csv'

请注意,如果您还想通过 Java 访问 CSV 文件,Java 代码和 MySQL 服务器都应该在物理上运行在同一台机器上。如果它们在物理上不同的机器上运行,那么您可能会寻找其他方法来访问 CSV 文件,例如FTP 生成的 CSV 文件。

【讨论】:

  • 我认为工作目录是错误的……至少不能是Java进程的工作目录(除非有某种方式可以在Java中运行MYSQL)。
【解决方案2】:
SELECT ... INTO OUTFILE

将数据转储到 MySQL 服务器 机器上的文件中。如果要在 Java 客户端创建本地文件,则需要自己创建。

【讨论】:

    【解决方案3】:

    假设您的 SQL 查询是正确的(您的示例在换行符处缺少空格),OUTFILE 将文件保存在服务器上。
    如果没有给出路径,它将进入数据目录,在具有用户名的子目录中。
    类似于test 用户的C:\Program Files\MySQLServer\data\test

    要找出数据目录是什么,请使用show variables where variable_name = 'datadir' 查询。

    BalusC 所建议,只需使用完整路径即可更改 OUTFILE 的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-03
      • 2022-01-03
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多