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 - 选择查询输出文件 - 文件保存在哪里的主要内容,如果未能解决你的问题,请参考以下文章