更新现有数据的jdbc odbc会出现什么问题?
在数据库中我发现“ID”和“FirstName”是文本类型,“Mobile”是数字类型(整数)。
错误代码:java.sql.SQLException:[Microsoft] [ODBC Microsoft Access驱动程序] UPDATE语句中的语法错误。
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {
try{
int number;
String id,fName;
id=jTextField1.getText();
fName=jTextField2.getText();
number=Integer.parseInt(jTextField3.getText());
s.executeUpdate("UPDATE Student set ID='"+id+"','FirstName'"+fName+"',Mobile"+number+" where ID='"+id+"'");
JOptionPane.showMessageDialog(null,"Record has been updated");
System.out.println("Updated");
DBclose();
DBopen();
}
catch(HeadlessException | SQLException ae){
System.out.println(ae);}}
答案 0 :(得分:0)
您在查询中忘记了=
:
UPDATE Student set ID='"+id+"','FirstName'"+fName+"',Mobile"+number+" where ID='"+id+"'"
here--^ and here--^
你也有一个不应该在那里的引用
UPDATE Student set ID='"+id+"','FirstName
here--^
提示:如果您只是打印最终查询,或使用调试器检查其值,您会立即注意到。
你还应该学会使用prepared statements来使你的代码更健壮(例如,如果这个名字是O'Reilly),并且不容易受到SQL注入攻击。
最后,您不应该使用完全过时的JDBC / ODBC驱动程序。下载数据库的数据库驱动程序并使用它。