Java 无法从数据库中更新和删除数据
我正在尝试更新或删除数据库中的数据,但它不起作用。我不知道昨天晚上我困了,想解决另一个问题。而现在这不起作用了。这是它们的代码。我的问题在哪里。当我使用delete命令时,它正在更新,但试图更新表,而不是更新表。我的问题在哪里,如何解决Java 无法从数据库中更新和删除数据,java,sql,database,sql-update,Java,Sql,Database,Sql Update,我正在尝试更新或删除数据库中的数据,但它不起作用。我不知道昨天晚上我困了,想解决另一个问题。而现在这不起作用了。这是它们的代码。我的问题在哪里。当我使用delete命令时,它正在更新,但试图更新表,而不是更新表。我的问题在哪里,如何解决 private void cmd_deleteActionPerformed(java.awt.event.ActionEvent evt) { Strin
private void cmd_deleteActionPerformed(java.awt.event.ActionEvent evt) {
String sql="delete from maintable where İsim =? ";
try{
pst=conn.prepareStatement(sql);
pst.setString(1, jTextField1.getText());
pst.execute();
JOptionPane.showMessageDialog(null, "Silindi");
}catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
这是为了更新:
private void cmd_updateActionPerformed(java.awt.event.ActionEvent evt) {
try{
String value1=jTextField1.getText();
String value2=jTextField2.getText();
String value3=jTextField3.getText();
String value4=jTextField4.getText();
String value5=jTextField5.getText();
String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
pst=conn.prepareStatement(sql);
pst.execute();
JOptionPane.showMessageDialog(null, "Güncellendi");
}catch(Exception e){;
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
编辑:“pst=conn.prepareStatement(sql);”它给了我红色下划线错误,这是括号中sql单词的下划线,表示“找不到符号”
这是用于更新的
private void cmd_updateActionPerformed(java.awt.event.ActionEvent evt) {
try{
String value1=jTextField1.getText();
String value2=jTextField2.getText();
String value3=jTextField3.getText();
String value4=jTextField4.getText();
String value5=jTextField5.getText();
String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
pst=conn.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null, "Güncellendi");
}catch(Exception e){;
JOptionPane.showMessageDialog(null, e);
}
Update_table();
}
对于插入、更新和删除,您应该调用executeUpdate()而不是execute()
注意这不是使用preparedStatement的正确方法
String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
pst=conn.prepareStatement(sql);
这样
pst=conn.prepareStatement("update maintable set İsim=?,Yaş=?,Konum=?,EPosta=?,KatılımTarihi=?"); pst.setString(1,value1);
pst.setString(2,value2);
pst.setString(3,value3);
pst.setString(4,value4);
pst.setString(5,value5);
pst.executeUpdate();
使用pst.executeUpdate()代替pst.execute(),这样它就可以正常工作
对于事务(插入、删除、更新),请使用executeUpdate()方法
要选择(选择)数据,请使用executeQuery()。Hmm,感谢您的回答,但它不起作用。他们两个又是一样的;只是删除jtable或者只是更新jtable,而不是数据库。因此,当我重新登录到程序数据时,数据与我编辑或删除的数据不同。我尝试了你最后的建议,你给了我使用它的建议,但是,当我把这个代码应用到我的程序中时,它给出了一些红色下划线的错误。我会编辑我的问题。@Qce我不能说你为什么会出错,但这是preparedstatement的正确用法。你在这里和这里检查它@ace我已经编辑了我的答案,只要复制并粘贴到你的代码中,如果你发现错误,你可以问我它没有以代码形式给出错误,但它不起作用。同样的事情,显示了我在programram上的编辑,当我重新运行程序时,它都消失了。PS:我正在使用SQLite管理器database@qce你想做什么和得到什么都不管用你需要发布的所有细节。除非我们说我们无法解决的代码。我只是告诉你preparedstatement的正确用法和executeUpdate()的用法。这与你发布的sql字符串的问题是一致的=“update maintable setİsim=”“+value1+”,Yaş=”“+value2+”,Konum=”“+value3+”,EPosta=”+value4+”,KatılımTarihi=“+value5+”,其中İsim=”“+value1+”,pst=conn.preparest陈述(sql);pst.executeUpdate();JOptionPane.showMessageDialog(null,“Güncellendi”);这两种方法都不起作用
String sql="update maintable set İsim='"+value1+"' ,Yaş ='"+value2+"',Konum ='"+value3+"',EPosta='"+value4+"',KatılımTarihi='"+value5+"' where İsim='"+value1+"' ";
pst=conn.prepareStatement(sql);
pst=conn.prepareStatement("update maintable set İsim=?,Yaş=?,Konum=?,EPosta=?,KatılımTarihi=?"); pst.setString(1,value1);
pst.setString(2,value2);
pst.setString(3,value3);
pst.setString(4,value4);
pst.setString(5,value5);
pst.executeUpdate();