我能够通过在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);
}
答案 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);
3-在catch博客中打印错误时请使用printStackTrace()
方法,错误信息会更容易理解。
System.out.println("Error: " + ex.printStackTrace());