更新查询执行成功,但是即使使用update语句,netbeans上Java数据库中的表也未更新

时间:2018-11-01 20:19:49

标签: java swing netbeans jframe javadb

我的Java数据库未更新,但查询成功执行。我试图从名为“ ProductClass”的类中调用更新方法,并将该方法放入我的jframe源代码“ UpdateProductForm”中。但是我不确定这个问题是由于创建我的更新方法时出错还是由于调用我的更新方法时出错。请注意,编译器没有给出错误消息,我急需帮助。预先感谢。

我的产品类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class ProductClass extends MaterialClass implements Addable, Updatable, Deletable {  

public int PRODUCT_ID;
public String PRODUCT_NAME;
public String PRODUCT_BRAND;
public String PRODUCT_MODEL;
public String PRODUCT_TYPE;
public int PRODUCT_PRICE;
public int MATERIAL_ID;

public ProductClass(int PRODUCT_ID, String PRODUCT_NAME, String PRODUCT_BRAND, String PRODUCT_MODEL, String PRODUCT_TYPE, int PRODUCT_PRICE, int MATERIAL_ID)
{

}
public ProductClass(int PRODUCT_ID)
{ 
}

@Override
public boolean Update() 
{
     try 
    {
        Connection conn= DriverManager.getConnection("jdbc:derby://localhost:1527/KDatabase","koushal","456");
        String query= "UPDATE PRODUCT SET PRODUCT_NAME= '"+PRODUCT_NAME+"' ,PRODUCT_BRAND= '"+PRODUCT_BRAND+"' ,PRODUCT_MODEL= '"+PRODUCT_MODEL+"' ,PRODUCT_TYPE='"+PRODUCT_TYPE+"',PRODUCT_PRICE= "+PRODUCT_PRICE+" ,MATERIAL_ID= "+MATERIAL_ID+" where PRODUCT_ID= "+PRODUCT_ID+"  ";
        PreparedStatement statement =conn.prepareStatement(query);
        statement.executeUpdate();
        return true;
    } 
    catch (SQLException ex) 
    {
        Logger.getLogger(SystemAdministrator.class.getName()).log(Level.SEVERE, null, ex);
    }
    return false;
}
}
  

我的UpdateProductForm,我试图在其中调用方法更新。这里更新成功,但是我的数据库没有更新

    private void UpdateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
    int value1=Integer.parseInt(Ptd_IDtxtField.getText());
    String value2=Ptd_NametxtField.getText();
    String value3=PtdBrand_txtField.getText();
    String value4=PtdModel_txtField.getText();
    String value5=PtdType_txtField.getText();
    int value6=Integer.parseInt(PtdPrice_txtField.getText());
    int value7=Integer.parseInt(MaterialID_txtField.getText());
    ProductClass object = new ProductClass(value1,value2,value3,value4,value5,value6,value7);
    if(object.Update()==true)
    {
        JOptionPane.showMessageDialog(null,"Update Successful");
    }
}  
  

这是我的可更新公共界面

public interface Updatable {
/**
 *
 * @return
 */
public boolean Update();

}

1 个答案:

答案 0 :(得分:0)

您的更新末尾缺少commit语句

 conn.commit();

还要关闭资源,最好从Java 7开始使用try资源,请参见docs