设置文本表hsqldb Java

设置文本表hsqldb Java,java,file,hsqldb,Java,File,Hsqldb,我试图创建一个文本表,从文件中设置其值,然后在Java代码中使用hsqldb将这些值插入到普通表中,如以下代码所示: String sqlkeywordcreate=new String ("CREATE TABLE keywordsTable " + " (k_id INTEGER IDENTITY not NULL PRIMARY KEY, keywords varchar(20))"); String sqlkeywordcreate1=new String ("CREA

我试图创建一个文本表,从文件中设置其值,然后在Java代码中使用hsqldb将这些值插入到普通表中,如以下代码所示:

String sqlkeywordcreate=new String ("CREATE TABLE keywordsTable " + " (k_id INTEGER IDENTITY not NULL PRIMARY KEY,  keywords varchar(20))");
        String sqlkeywordcreate1=new String ("CREATE TEXT TABLE tempKeywordsTable " + " (key varchar(20))");
        System.out.println(sqlkeywordcreate);
        stmt1.executeUpdate(sqlkeywordcreate);
        stmt1.executeUpdate(sqlkeywordcreate1);
        int numOfFields=di.getAllTerms(); 
        String setTempKeywordsTable= new String ("set table "+ "tempKeywordsTable"+ " source 'E:/Thesis/ThesisWork/outdata/keywords.txt';ignore_first=false;shutdown=true");
        stmt1.execute( setTempKeywordsTable);
        String insertkey=  new String("INSERT INTO keywordsTable"+ "(keywords)"+ "select key from tempKeywordsTable");
        stmt1.executeUpdate(insertkey);
        String dropTempKey= new String("drop table tempKeywordsTable");
        stmt1.executeUpdate(dropTempKey);
但是当我运行这个时,我得到了一个异常:

java.sql.SQLException: bad TEXT table source file - line number: 0 org.hsqldb.HsqlException: Access is denied: E:/Thesis/ThesisWork/outdata/keywords.txt in statement [set table tempKeywordsTable source 'E:/Thesis/ThesisWork/outdata/keywords.txt']
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
at org.hsqldb.jdbc.JDBCStatement.executeUpdate(Unknown Source)
at ThesisCode.ReductionTry.main(ReductionTry.java:73)
Exception in thread "main" java.lang.NullPointerException
at ThesisCode.ReductionTry.main(ReductionTry.java:147)
我找了很多东西想找出这个问题,但什么也找不到。
请给我一些建议。

连接字符串时请注意空格,您应该写:

String setTempKeywordsTable= new String ("set table "+"tempKeywordsTable"+ " source 'E:/Thesis/ThesisWork/outdata/keywords.
而不是:

String setTempKeywordsTable= new String ("set table"+ "tempKeywordsTable"+ " source 'E:/Thesis/ThesisWork/outdata/keywords.
您在String
insertkey

中犯了相同的错误,我更新了一次:


现在我们必须使用相对路径。例如:db exist here:
“c:\folder1\folder2”
。包含数据的文件应该在
文件夹2
或子文件夹中。

非常感谢Martin