我是java的初学者,我遇到了一个问题。我尝试了很多方法,但没有成功。我想用java更新我的数据库,但我不知道我的错误到底是什么。这是我的代码。
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String username=jTextField1.getText();
String password=jPasswordField1.getText();
String new_pass=jPasswordField2.getText();
update(1,username,new_pass);
}
并将该函数调用为:
public void update(int id, String name, String pass) {
int i = 0;
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "root", "");
String sql = "UPDATE user_pass SET id=?, password=? WHERE username=? ";
PreparedStatement pst = con.prepareStatement(sql);
pst.setInt(1, id);
System.out.println("Yeha samma thik xa");
pst.setString(2, name);
pst.setString(3, pass);
pst.executeUpdate();
System.out.println("Updated Successifully");
JOptionPane.showMessageDialog(null, "Successifully updated! ");
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Sorry there is an error\nPlease check the information provided ", " ", JOptionPane.ERROR_MESSAGE);
}
}
答案 0 :(得分:0)
我不知道我的错误到底是什么。
这是因为你发现错误。
} catch (Exception ex) {
但是你忽略它扔掉它。如果使用堆栈跟踪打印错误,您将知道出现错误的位置和原因。
如果这没有帮助,我建议在IDE中使用调试器。这可以帮助您诊断错误和原因。
答案 1 :(得分:0)
catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Sorry there is an error\nPlease check the information provided ", " ", JOptionPane.ERROR_MESSAGE);
}
你应该打印你的“Exception ex”。然后你可以找出错误是什么,然后你可以解决它。
对于初学者:将“System.out.println(ex)”放入catch块中。
答案 2 :(得分:0)
问题在于查询本身。应该是
String sql=UPDATE user_pass SET id='"+id+"', password='"+password+"' WHERE username='"+username+"' ";
不是这个
String sql = "UPDATE user_pass SET id=?, password=? WHERE username=? ";
一切都很好。