在做一个JAVA作业,作业是让JAVA和ACCESS连接起来做一个电子英汉字典,下面程序是存储成ACCESS格式的时候,但是总是提示SQL语句不正确,找了很久不知道哪里错了,请各位大神帮忙看下
public void SaveDB() 
{
String  sql;
DataBase dictionaryDB;//DataBase是自己定义的一个JAVA和ACCESS连接的一个类
dictionaryDB = new DataBase();
Dictionary_WordItem temp = Head;//Head是链表的头指针,该链表用来存储字典内容,
while(temp != null)
{
         String English = temp.GetEnglish();//得到英文
System.out.println(English);

String Chinese = temp.GetChinese();//得到中文
      System.out.println(Chinese);
        
sql = String.format("INSERT INTO table(EnglishWord,ChineseWord) " +
         "VALUES ('%s','%s');",temp.GetEnglish(), temp.GetChinese());//这一步我找了很久也没找出错误
         try
         {
         (dictionaryDB.stm).executeUpdate(sql);
         }
         catch(SQLException e)
         {
         System.out.print(e);//每一次都是执行这里,打印错误
         }
         temp = temp.next;
}
dictionaryDB.CloseDB();
 
}

解决方案 »

  1.   

    我也不知道到底哪里错了,原先的版本是将链表存储成TXT格式,没有问题,现在添加一个存储成ACCESS就出问题了,不知道哪里出错了,我感觉都对啊,
      

  2.   

    对啊,就是打印出sql语句错误啊,但是我看了半天,sql语句没有错啊
      

  3.   

    sql = String.format("INSERT INTO table(EnglishWord,ChineseWord) " +
    "VALUES ('%s','%s');",temp.GetEnglish(), temp.GetChinese());//这一步我找了很久也没找出错误table是关键字,不能作为表名的,非要用这个作为表名,要加界定字符,用双引号括起来就可以
    sql = String.format("INSERT INTO \"table\"(EnglishWord,ChineseWord) " +
    "VALUES ('%s','%s');",temp.GetEnglish(), temp.GetChinese());
      

  4.   

    在Microsoft 的数据库种中括号“[]”表示限定符
    没用过Access,百度有人是这么说的。