用Java动态更新数据库

时间:2016-08-23 02:01:25

标签: java database

我是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);
    }

}

3 个答案:

答案 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=? "; 一切都很好。