如何确认插入查询是否成功?

时间:2012-07-24 17:35:42

标签: java

我使用foll0wing代码插入数据库,它正常工作,因为我可以看到db中的数据填充,但是我想以编程方式捕获结果,无论是成功还是失败

1)这是插入的代码

public void SignUp(String last_name, String first_name, String email,
        String password, String confirm_password, String phone) {

    Connect connect = new Connect();
    Connection conn = connect.Connection();
    Statement stmt = conn.createStatement();

    String query = "INSERT INTO users VALUES(NULL,('" + last_name + "'),('"
            + first_name + "'),('" + email + "'),('" + password + "'),('"
            + confirm_password + "'),('" + phone + "'))";
    stmt.executeUpdate(query);
    conn.close();

}

2)这是我用来连接的代码

public Connection Connection() {

    Connection conn = null;

    try {
        String userName = "admin";
        String password = "admin";
        String url = "jdbc:mysql://localhost/project";
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        conn = DriverManager.getConnection(url, userName, password);

        System.out.println("\n Database connection established");

    } catch (Exception e) {
        e.printStackTrace();
        System.err.println("\n Cannot connect to database server");

    }
}

2 个答案:

答案 0 :(得分:9)

  

的executeUpdate

public int executeUpdate(String sql)
                  throws SQLException
  

返回:INSERT,UPDATE或DELETE语句的行数,   或0表示不返回任何内容的SQL语句

答案 1 :(得分:0)

最简单的方法是直接查询。对check the API来说总是一个好主意,但是有了更新,我不确定除非有一个简洁的方法来判断它是否成功(除了没有抛出异常)。

作为旁注,请查看Prepared Statements。在执行未经过清理的sql时使用海峡文本通常不是一个好主意。