我通过以下方式获得了一个文本文件:
JFileChooser dialog = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter("Текстовый файл", "txt");
dialog.removeChoosableFileFilter(dialog.getFileFilter());
dialog.addChoosableFileFilter(filter);
dialog.setFileSelectionMode(JFileChooser.FILES_ONLY);
dialog.setDialogTitle("Выберите текстовый файл");
dialog.setDialogType(JFileChooser.OPEN_DIALOG);
dialog.setMultiSelectionEnabled(false);
int ret = dialog.showDialog(null, "Открыть");
if (ret == JFileChooser.APPROVE_OPTION) {
File file = dialog.getSelectedFile();
pach = file.getAbsolutePath();
} else return;
System.out.println(pach);
上一个命令显示:
D:\data\streets.txt
现在我提出请求:
try {
querySQL = "LOAD DATA LOCAL INFILE '" + pach + "' INTO TABLE " + DB_NAME + "." + TABLE_NAME + ";";
stSQL.execute(querySQL);
} catch (SQLException e) {
ErrorMsg(e, querySQL);
isError = true;
break;
}
我做了ErrorMsg问题:
Unable to process the query:
LOAD DATA LOCAL INFILE 'D:\data\streets.txt' INTO TABLE base2.streets;
java.sql.SQLException: Unable to open file 'D:datastreets.txt'for 'LOAD DATA LOCAL INFILE' command.Due to underlying IOException:
它消除了歪斜,以及为什么会发生这种情况?实际上,如果将此类请求插入Workbench,则执行查询时不会出现错误。请告诉我这个问题的解决方案,这是非常必要的。提前谢谢。
P.S。该文本由谷歌翻译
翻译成英文答案 0 :(得分:2)
您可能想要转义路径中包含的反斜杠。对于数据库,反斜杠(\)可以以无法在数据库中保存字符串的方式更改值。这可能是其他特殊字符的问题,例如'也。连接包含'的字符串给你查询,添加一个额外的'这将打破查询。
您可以使用StringEscapeUtils执行此操作。 https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html