通过 GUI 将数据插入 sql 服务器



我能够通过在Eclipse上编写sql代码(插入等)来执行sql语句,并且它被正确地显示在sql服务器中。连接已完成。但是,当用户想通过GUI界面(文本字段)添加数据并且数据需要自动存储到数据库中时,我该怎么办?

我在 ADD 按钮中的代码,但我收到错误:java.lang.NullPointerException !请帮忙..

try {
       String pid = ProductID.getText();
       String sql = "insert into Products_tbl values (' " +pid + " ')";
       // Running the sql query
       rs = st.executeQuery(sql);
       int count = 0;
       while (rs.next()) {
         count = count + 1;
       }
       if (count == 1) {
          JOptionPane.showMessageDialog(null, "Welcome");
       } 
       else if (count > 1) {
         JOptionPane.showMessageDialog(null,"Duplicate User Access Denied");
       }
       else {
         JOptionPane.showMessageDialog(null, " User Not Found ");
       }
}
catch (Exception ex) {
      System.out.println("Error: " + ex); 
}

1- 使用(' " +pid + " ')"是不安全的,因为可能会发生SQL注入。请改用 SqlParameters。请检查:https://www.w3schools.com/sql/sql_injection.asp

2-我很确定这行有问题:rs = st.executeQuery(sql);在这里,我敢打赌st的值为空。确保您的连接变量已正确定义和设置,并且您创建了如下所示的语句:

st = connection.createStatement();

您也可以尝试执行更新(查询)而不是执行查询(查询),例如:

int flag = st.executeUpdate(query);

参考: https://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeUpdate%28java.lang.String%29

3-请在catch博客中打印错误时使用printStackTrace()方法,错误消息将更容易理解。

System.out.println("Error: " + ex.printStackTrace()); 

最新更新