java - mysql - 选择查询输出文件 - 文件保存在哪里

Posted

技术标签:

【中文标题】java - mysql - 选择查询输出文件 - 文件保存在哪里【英文标题】:java - mysql - select query outfile - where is file getting saved 【发布时间】: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'" 你是对的..我最后把空格放了 【参考方案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 的位置。

【讨论】:

以上是关于java - mysql - 选择查询输出文件 - 文件保存在哪里的主要内容,如果未能解决你的问题,请参考以下文章

如何让 MySQL 以不同的用户身份写入输出文件?

使用SQL命令建立查询时,若要将查询结果输出到一个临时数据表中,需要选择使用的子句是

Java数据库操作

mysql查询结果输出到文件

使用 Checkbox 确定 MySql 查询

java和mysql数据库配置问题