通过GUI将数据插入sql server

时间:2016-03-09 17:12:14

标签: sql database eclipse user-interface interface

我能够通过在Eclipse上编写sql代码(Insert etc)来执行sql语句,并且它正在正确显示到sql server中。已完成连接。但是当用户想要通过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 个答案:

答案 0 :(得分:0)

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

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

st = connection.createStatement();

你也可以尝试executeupdate(query)而不是executequery(query),如:

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());