使用derbydb在netbeans中自动增加标识

dced5bon  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(189)

我正在尝试将数据插入到customer表中。

private void c_enterActionPerformed(java.awt.event.ActionEvent evt) {                                        
    String insertSQL = "insert into CUSTOMER(CUST_ID, CUST_NIC, CUST_FNAME,CUST_LNAME, CUST_EMAIL, CUST_ADDRESS, CUST_PHONE, CUST_IMG) values(?,?,?,?,?,?,?,?)";
    try{
        ps = con.prepareStatement(insertSQL);
        ps.setString(1,c_id_text.getText());
        ps.setString(2,c_nic_text.getText());
        ps.setString(3,c_fname_text.getText());
        ps.setString(4,c_lname_text.getText());
        ps.setString(5,c_email_text.getText());
        ps.setString(6,c_address_text.getText());
        ps.setString(7,c_phone_text.getText());
        ps.setString(8,img_path_txt.getText());
        ps.execute();
        JOptionPane.showMessageDialog(null, "New Customer Inserted\nCongratulations!");
        c_id_text.setText("");
        c_nic_text.setText("");
        c_fname_text.setText("");
        c_lname_text.setText("");
        c_email_text.setText("");
        c_address_text.setText("");
        c_phone_text.setText("");
        img_path_txt.setText("");
        updateTable();          
    }catch(Exception e){
        JOptionPane.showMessageDialog(null, "Insertion error: "+e);
    }
}

该表是使用以下方法创建的:

CREATE TABLE CUSTOMER(
CUST_ID INT PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
CUST_NIC VARCHAR(14),
CUST_FNAME VARCHAR(20),
CUST_LNAME VARCHAR(25),
CUST_EMAIL VARCHAR(45), 
CUST_ADDRESS VARCHAR(60),
CUST_PHONE INTEGER,
CUST_IMG VARCHAR(100));
SELECT * FROM AKASH.CUSTOMER FETCH FIRST 100 ROWS ONLY;


我已经禁用了如图所示的cust\u id文本。它告诉我“试图修改一个身份栏‘cust\u id’。
现在,澄清一下:我知道发生了什么。但我不知道怎么修。我试着移除 ps.setString(1,c_id_text.getText()); ,那没用。我还试图从中删除cust\u id String insertSQL... ,但无济于事。如果我尝试使用“插入行”按钮从sql输入数据,它会工作,并且cust\u id列会显示“”

q43xntqr

q43xntqr1#

发现了我的错误。评出后解决 ps.setString(1,c_id_text.getText()); 以及 c_id_text.setText(""); 以及从insertsql代码行中删除cust\u id。

相关问题