0

我正在尝试在 Java 中的 MySQL 语句中将字符串变量记录到数据库中。

我读过这个这个,但我没有成功。

这是我的代码:

public void registerUser( String userName, String password ) {

    try {
        String insertQuery = "INSERT INTO Credentials ('11', name, pass) VALUES('11', ?, ?)";
        pstmt = connection.prepareStatement(insertQuery);
        pstmt.setString(2, userName);
        pstmt.setString(3, password);
        pstmt.executeUpdate();
//          statement.executeUpdate("INSERT INTO Credentials VALUES(3, 'userName', 'password')");
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        // close the connection when done
        try {
            if (connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }//END finally

}//END registerUser

如您所见,这段代码正在获取两个字符串值,它应该将它们放入数据库中。但我找不到合适的解决方案。

有任何想法吗?

谢谢。

4

1 回答 1

2

这个:

pstmt.setString(2, userName);
pstmt.setString(3, password);

需要是:

pstmt.setString(1, userName);
pstmt.setString(2, password);

您只在 PreparedStatement 中设置了两个变量,因此您需要从 1 开始计数。setter方法中使用的整数需要与语句中的问号匹配,而不是与给定 SQL 字符串的参数列表匹配。

于 2012-05-19T16:28:38.630 回答