Java SQL语法中有一个错误:使用near';ID=”号&引用;在1号线
我一直在犯这个错误 第1行的“ID=”“ 这是我的密码:Java SQL语法中有一个错误:使用near';ID=”号&引用;在1号线,java,mysql,sql,database,Java,Mysql,Sql,Database,我一直在犯这个错误 第1行的“ID=”“ 这是我的密码: public void DeleteRecord(){ String sql="delete from issueditems where Item ID=?"; try{ pst=conn.prepareStatement(sql); pst.setString(1, jt4.getText()); pst.execute(); }catch(Exc
public void DeleteRecord(){
String sql="delete from issueditems where Item ID=?";
try{
pst=conn.prepareStatement(sql);
pst.setString(1, jt4.getText());
pst.execute();
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
}
选中jt4.getText()
为null或为空
检查ID
字段数据类型是否为int或varchar
如果
ID
为int类型。尝试修改pst.setString(1,jt4.getText())
是pst.setInt(1,Integer.parseInt(jt4.getText())
我不知道您使用的是什么数据库,但我也不知道任何数据库的“条目ID”是有效的列名。该列可能命名为“ItemID”或“Item_ID”,您需要相应地更改SQL语句-或者
delete from issueditems where ItemID=?
或
使用当前语句(
delete from issueditems where Item ID=?
),数据库会看到一个列名“Item”,并需要一个运算符(“=”、“‘LIKE’或类似的运算符),但会找到另一个标识符“ID”,并且不知道如何处理该标识符。看起来代码和错误消息不匹配。请添加完整的StackTrace是否有触发器?可能是jt4.getText返回null或空stringright我确实在单击操作按钮(将其删除)后设置了jt4 setText(“”),现在我得到了新的错误:语法错误:第1行的“ID='10006272”附近似乎在“Item”和“ID”之间有一个空格字符“-您的SQL语句可能应该读为“delete from issueditems where ItemID=?”
将其更改为varchar现在我忘记了它,现在我得到了新的错误:语法错误:near'ID='10006272“在第1行,您不应该更改数据库列类型,您应该修复代码,进行一些验证和转换,以确保您的代码始终传递给查询一个有效的、非空的数字。
delete from issueditems where Item_ID=?