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