用java在本地数据库中添加sql记录

s6fujrry  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(407)

编辑:已解决,输入新记录时电子邮件地址太长-扩展数据库中的字符数解决了问题。
基本问题,但我正在努力通过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数据库不会用新记录更新
提前谢谢,祝你今天愉快!

azpvetkf

azpvetkf1#

信息
数据长度还有一个问题。记录异常是查看发生了什么的关键。见注解。
查询模板字符串中没有占位符。
而不是

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 (?,?,?,?,?,?);";

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

相关问题