通过 Java 在本地数据库中添加 SQL 记录

Adding SQL record on local database via Java

编辑:已解决,输入新记录时电子邮件地址太长 - 扩展数据库中的字符数解决了该问题。

基本问题,但我正在努力通过 java 表单将简单的 sql 记录添加到本地数据库。 这是我的数据库示例:

这是在 NetBeans 中创建的表单:

这是我填写数据后单击“保存”按钮时的代码

private void jbtnzapiszpracActionPerformed(java.awt.event.ActionEvent evt) {                                               
    // TODO add your handling code here:
    try
    {
       
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bazadanych","root","");
    String queryP = ("INSERT INTO pracownicy (id,first_name,last_name,email,gender,ip_address) VALUES ('"+id+"','"+first_name+"','"+last_name+"','"+email+"','"+gender+"','"+ip_address+"');");
    //Example:
    //INSERT INTO pracownicy (id,first_name,last_name,email,gender,ip_address) VALUES ('6','Marek','Marecki','m.m@gmail.comn','Male','0.000.00.0');
    
    PreparedStatement pst = con.prepareStatement(queryP);
    pst.setString(1, id.getText());
    pst.setString(2, first_name.getText());
    pst.setString(3, last_name.getText());
    pst.setString(4, email.getText());
    if (jrdM.isSelected())
    {
        gender = "Male";
    }
     if (jrdK.isSelected())
    {
        gender = "Female";
    }
     pst.setString(5, gender);
     pst.setString(6,ip_address.getText());
     pst.executeUpdate();
     
    }
    catch (Exception ex) {
    
    }
  this.setVisible(false);
  
}                               

我很确定与数据库的连接已建立,因为我可以预览所有内容,但当我按“保存”时,sql 数据库没有更新新记录

在此先致谢,祝您有愉快的一天!

信息

There was another issue with the length of data. Logging the exceptions was the key to see what was going on. See comments.


您的查询模板字符串中没有占位符。

而不是

String queryP = ("INSERT INTO pracownicy (id,first_name,last_name,email,gender,ip_address) VALUES ('"+id+"','"+first_name+"','"+last_name+"','"+email+"','"+gender+"','"+ip_address+"');");

使用

String queryP = "INSERT INTO pracownicy (id,first_name,last_name,email,gender,ip_address) VALUES (?,?,?,?,?,?);";

(我不确定这里是否需要单引号)