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

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

编辑:已解决,输入新记录时电子邮件地址太长-扩展数据库中的字符数解决了问题。
基本问题,但我正在努力通过java表单将简单的sql记录添加到本地数据库中。以下是我的数据库示例:

这是在netbeans中创建的表单:

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

  1. private void jbtnzapiszpracActionPerformed(java.awt.event.ActionEvent evt) {
  2. // TODO add your handling code here:
  3. try
  4. {
  5. Class.forName("com.mysql.jdbc.Driver");
  6. Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bazadanych","root","");
  7. String queryP = ("INSERT INTO pracownicy (id,first_name,last_name,email,gender,ip_address) VALUES ('"+id+"','"+first_name+"','"+last_name+"','"+email+"','"+gender+"','"+ip_address+"');");
  8. //Example:
  9. //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');
  10. PreparedStatement pst = con.prepareStatement(queryP);
  11. pst.setString(1, id.getText());
  12. pst.setString(2, first_name.getText());
  13. pst.setString(3, last_name.getText());
  14. pst.setString(4, email.getText());
  15. if (jrdM.isSelected())
  16. {
  17. gender = "Male";
  18. }
  19. if (jrdK.isSelected())
  20. {
  21. gender = "Female";
  22. }
  23. pst.setString(5, gender);
  24. pst.setString(6,ip_address.getText());
  25. pst.executeUpdate();
  26. }
  27. catch (Exception ex) {
  28. }
  29. this.setVisible(false);
  30. }

我很确定与数据库的连接是以不同的形式建立的,我可以预览所有的连接,但是当我按“保存”时,sql数据库不会用新记录更新
提前谢谢,祝你今天愉快!

azpvetkf

azpvetkf1#

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

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

使用

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

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

相关问题