java sql SQLException:参数索引超出范围(1>参数数,为0)!
我试图通过查看其他类似的帖子来解决这个问题,但没有成功。您的SQL中没有任何参数。在您的代码中,您正在构建SQL,但在附加值 改为java sql SQLException:参数索引超出范围(1>参数数,为0)!,java,mysql,jdbc,Java,Mysql,Jdbc,我试图通过查看其他类似的帖子来解决这个问题,但没有成功。您的SQL中没有任何参数。在您的代码中,您正在构建SQL,但在附加值 改为 try { int stupac=tabZaDijagnozu.getSelectedRow(); String T=(tabZaDijag.getModel().getValueAt(stupac,0).toString()); String sql="SELECT *FROM dijagnoze WHERE ID='"+T+"'";
try {
int stupac=tabZaDijagnozu.getSelectedRow();
String T=(tabZaDijag.getModel().getValueAt(stupac,0).toString());
String sql="SELECT *FROM dijagnoze WHERE ID='"+T+"'";
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
if(rs.next()) {
String id=rs.getString("ID");
String Query = "DELETE *FROM dijagnoze WHERE ID='"+id+"'";
pst=conn.prepareStatement(Query);
pst.setString(1, "ID");
pst.execute();
JOptionPane.showMessageDialog(null, "Deleted!");
}
} catch(Exception e) {
JOptionPane.showMessageDialog(null,e);
}
编辑
此外,您的select应该至少固定为以下值,但使用参数可以更安全地防止sql注入
String Query = "DELETE FROM dijagnoze WHERE ID = ?";
pst=conn.prepareStatement(Query);
pst.setString(1, id);
编辑2
在代码中,首先根据id进行选择,然后如果该记录存在,则执行删除。不必先选择,只需删除即可。错误是什么?
String sql="SELECT * FROM dijagnoze WHERE ID = '" + T + "'";