java - mysql - выбрать запрос outfile - где файл сохраняется

Подключение к базе данных MySQL из Java с помощью JDBC. объявление запроса

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

выполнение запроса с использованием executQuery(запрос).

Как изменить приведенный выше код, чтобы сохранить DataFormatted.csv в корневой каталог диска c

3 ответа

Решение

где файл сохраняется

В текущем рабочем каталоге сервера MySQL. Какой это зависит от того, как сервер MySQL выполняется и настраивается. Лучше всего изменить местоположение файла CSV на фиксированное местоположение.

Как изменить приведенный выше код, чтобы сохранить DataFormatted.csv в корневой каталог диска c

Просто поменяй 'DataFormatted.csv' от 'C:/DataFormatted.csv',

Помните, что и код Java, и сервер MySQL должны работать на физически одной и той же машине, если вы хотите получить доступ к файлу CSV также с помощью Java. Если они работают на физически разных компьютерах, вы, вероятно, будете искать другие способы доступа к CSV-файлу, например, к FTP-файлу сгенерированного CSV-файла.

Если ваш SQL-запрос правильный (в вашем примере пропущены пробелы при переносе строки), OUTFILE сохраняет файл на сервере.
Если путь не указан, он перейдет в каталог данных, в подкаталог с именем пользователя.
Это что-то вроде C:\Program Files\MySQLServer\data\test для test пользователь.

Чтобы узнать, что это за каталог данных, используйте show variables where variable_name = 'datadir' запрос.

Чтобы изменить расположение OUTFILE, просто используйте полный путь, как предложено BalusC,

SELECT ... INTO OUTFILE

сбрасывает данные в файл на сервере MySQL. Если вы хотите создать локальный файл на клиенте Java, вам нужно будет создать его самостоятельно.

Другие вопросы по тегам