日期:2014-05-20  浏览次数:20691 次

各位JAVA大神们,帮忙看下一个小程序
在做一个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();
 
}


------解决方案--------------------
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());