JAVA - 不显示其他消息

时间:2017-05-23 19:37:47

标签: java if-statement try-catch

我是JAVA的新人。

这是我的mysql客户表结构。

   create table Customer(
    CID  VARCHAR (10) primary key,
    Name VARCHAR (30) not null,
    LicenseID VARCHAR (10) not null,
    NIC VARCHAR (10) not null,
    DOB date not null,
    Address VARCHAR (25) not null,
    Tp int (10) ,
    Email VARCHAR (30) not null 
   );

这是我的customerController函数。

private CustomerController custController;

private void addCustomerBtnActionPerformed(java.awt.event.ActionEvent evt) {                                               
    CustomerDTO customer = new CustomerDTO(
            idTxt.getText(),
            nameText.getText(),
            licenseText.getText(),
            NICText.getText(),
            DOBText.getText(),
            addressText.getText(),
            Integer.parseInt(tpText.getText()),
            emailText.getText());
    try { 
        boolean result = custController.add(customer);
        if (result){
            JOptionPane.showMessageDialog(this, "Customer has been successfully added...");
        }else{
            JOptionPane.showMessageDialog(this, "Customer has not been added...");
        }
    } catch (Exception ex) {
        Logger.getLogger(addCustomer.class.getName()).log(Level.SEVERE, null, ex);
    }
}

这是我的添加客户控制器。

@Override
public boolean add(CustomerDTO dto) throws Exception {
    String SQL="Insert into Customer values(?,?,?,?,?,?,?,?)";
    PreparedStatement stm=connection.prepareStatement(SQL);
    stm.setObject(1,dto.getCID());
    stm.setObject(2,dto.getName());
    stm.setObject(3,dto.getLicenseID());
    stm.setObject(4,dto.getNic());
    stm.setObject(5,dto.getDob());
    stm.setObject(6,dto.getAddress());
    stm.setObject(7,dto.getMobile());
    stm.setObject(8,dto.getEmail());
    int res=stm.executeUpdate();
    return (res > 0);
}

当我添加新客户时,它会添加到数据库中,并显示以下消息:“客户已成功添加...”。但是当我尝试将现有的CID或Tp添加为字符串时,我看不到“客户尚未添加...”消息。请任何人帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

我认为问题在于调用查询的方法。你是否在add()方法中处理了异常?只有当你在那里处理它并在catch中返回一个值时,它才能在这里返回值。如果你没有在那里处理,它可能会在控制台中抛出错误并结束你的应用程序。