使用java:Netbeans中的where子句更新Statement

时间:2017-10-30 06:37:28

标签: java sql-update where-clause netbeans-8

这是为了使用新数据更新表,但在执行以下代码时,它在 prepare语句中显示空指针异常。任何人都可以帮助找到我错的地方!

String a= jTextField1.getText();
String b= jTextField2.getText();
String c= jTextField3.getText();
String d= jTextField4.getText();
String e= jTextField5.getText();
String f= jTextField6.getText();
String g= jTextField7.getText();
String i= jTextField8.getText();

try {
String s2="update loginsys set 
appointtype='"+a+"',appointname='"+b+"',appointh='"+c+"',
appointm='"+d+"',appointd='"+e+"',appointmo='"+f+"',appointy='"+g+"'where 
username='"+f+"';";

    PST=conn.prepareStatement(s2);
    PST.setString(1,a);
    PST.setString(2,b);
    PST.setString(3,c);
    PST.setString(4,d);
    PST.setString(5,e);
    PST.setString(6,f); 
    PST.setString(7,g);
    PST.setString(8,f);

RS=PST.executeQuery();
if(RS.next()){         
    JOptionPane.showMessageDialog(null, "Appointment was fixed");
    appointments.this.setVisible(false);
    new list().setVisible(true);}
   else
      JOptionPane.showMessageDialog(null, "Appointment was not fixed");

1 个答案:

答案 0 :(得分:0)

首先,请返回并阅读Using Prepared Statements

上的教程

其次,将您的查询字符串更新为更像update loginsys set appointtype=?,appointname=?,appointh=?,appointm=?,appointd=?,appointmo=?,appointy=? where username=?

第三次使用executeUpdate代替executeQuery - 它将返回查询更新的行数