Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Java在本地数据库上添加SQL记录_Java_Sql_Netbeans_Xampp - Fatal编程技术网

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

通过Java在本地数据库上添加SQL记录,java,sql,netbeans,xampp,Java,Sql,Netbeans,Xampp,编辑:已解决,输入新记录时电子邮件地址太长-扩展DB上的字符数解决了问题 基本问题,但我正在努力通过java表单将简单的sql记录添加到本地数据库中。 以下是我的数据库示例: 这是在NetBeans中创建的表单: 这是我填写完数据后单击“保存”按钮时的代码 private void jbtnzapiszpracActionPerformed(java.awt.event.ActionEvent evt) {

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

基本问题,但我正在努力通过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数据库不会更新为新记录

提前感谢,祝你度过愉快的一天

信息

数据长度还有另一个问题。记录异常是查看发生了什么的关键。见评论


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

而不是

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

(我不确定您是否需要此处的单引号)

INFO

数据长度还有另一个问题。记录异常是查看发生了什么的关键。见评论


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

而不是

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


(我不确定您是否需要此处的单引号)

有什么问题?是否有错误消息?没有错误-只是在按“保存”后没有向数据库添加任何记录,您确定吗?也不例外?您的catch块为空(您永远不应该这样做),请将异常输出添加到问题中。Lupz-非常感谢-NetBeans向我发送了一个错误-数据太长,不适合“email”列。现在它工作100%好,谢谢!另外,如果在直接插入数据之前添加一些验证,那将非常好,更具体地说,它将抛出
SQLException
,如果关闭
准备好的语句
连接
,以及
pst.executeUpdate(),这将是一个很好的做法
将返回受影响的行数,最后,您必须确保weather id已经存在或不存在,以防止出现
SQLException
问题是什么?是否有错误消息?没有错误-只是在按“保存”后没有向数据库添加任何记录,您确定吗?也不例外?您的catch块为空(您永远不应该这样做),请将异常输出添加到问题中。Lupz-非常感谢-NetBeans向我发送了一个错误-数据太长,不适合“email”列。现在它工作100%好,谢谢!另外,如果在直接插入数据之前添加一些验证,那将非常好,更具体地说,它将抛出
SQLException
,如果关闭
准备好的语句
连接
,以及
pst.executeUpdate(),这将是一个很好的做法
将返回受影响的行数,最后,您必须确保weather id已经存在或不存在,以防止
SQLException
我将其更改为:String queryP=“INSERT into pracownicy(id,first_name,last_name,email,gender,ip_address)值(?,,,,,,;”;我把它改成了:String queryP=“INSERT into pracownicy(id,first\u name,last\u name,email,gender,ip\u address)值(?,,,,,,,;”;这没用。