2009-12-11 74 views
3

使用jdbc从java连接到java数据库。 声明查询java - mysql - 选择查询outfile - 文件正在保存的位置

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

使用executQuery(查询)执行查询。

如何更改上面的代码DataFormatted.csv保存到C盘根目录下

+0

我认为这个'query'根本行不通:行间缺少分隔符(空格)。 'SELECT * FROM tt2INTO OUTFILE'DataFormatted.csv'FIELDS TERMINATED BY','ENCLOSED BY'\“'LINES TERMINATED BY'\ n'”' – 2009-12-11 12:07:54

+0

你是对的..我把空格终于 – silverkid 2009-12-11 12:50:27

回答

4

其中文件得到保存。

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

如何更改上面的代码DataFormatted.csv保存到C盘根目录下

仅仅通过'C:/DataFormatted.csv'改变'DataFormatted.csv'

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

+0

I认为工作目录是错误的......至少它不能成为Java进程的工作目录(除非在Java内部运行MYSQL) – 2009-12-11 12:36:51

+0

嗯,有效的点,我会编辑答案。 – BalusC 2009-12-11 12:44:23

0
SELECT ... INTO OUTFILE 

的数据转储到MySQL的服务器上的文件。如果你想在Java客户端上创建一个本地文件,你需要自己创建它。

2

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

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

要改变OUTFILE的位置,只需使用完整路径,如BalusC所示。