我正在尝试使用加载数据infile(也尝试加载数据本地infile)在我的Java程序中运行insert语句,我似乎无法弄清楚出了什么问题。无论是SQL语句还是文件名/路径...... 我觉得我的文件名/路径错了。在Eclipse中,我在项目文件夹中添加了一个.txt文件。
我试图通过使用getAbsolutePath获取文件的路径,但我仍然错误地说加载中存在语法错误。
这是我尝试编写insert语句的地方: 我也在我的声明中更改了“to”,因为我已经看到了很多版本如何编写这个。我将insert语句部分的file.getabsolutepath更改为只是文件名。
String filename = "studentData.txt";
String workingDirectory = System.getProperty("user.dir");
File file = new File(workingDirectory, filename);
System.out.println("Final filepath : " + file.getAbsolutePath());
sql = "LOAD DATA INFILE \"" + file.getAbsolutePath()
+ "\" INTO TABLE STUDENT FIELDS "
+ "TERMINATED BY ',' LINES TERMINATED BY '\\n' "
+ "(STUDENT_ID, NAME, MAJOR, GRADE);";
stmt.executeUpdate(sql);
}
以下是我的错误:
最终文件路径:/Users/amnakhan/Documents/workspace/DatabaseExample/studentData.txt
Exception in thread "main" java.sql.SQLException: near "LOAD": syntax error
at org.sqlite.core.NativeDB.throwex(NativeDB.java:397)
at org.sqlite.core.NativeDB._exec(Native Method)
at org.sqlite.jdbc3.JDBC3Statement.executeUpdate(JDBC3Statement.java:116)
at DatabaseAccessHelper.createTables(DatabaseAccessHelper.java:72)
at DatabaseAccessHelper.main(DatabaseAccessHelper.java:296)
我的程序运行正常..如果我在insert语句中硬编码,程序运行正常。所以我知道其他一切都没问题。我试图只加载一个文本文件并运行插入语句。
有什么想法吗?