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

ご覧のとおり、このコードは 2 つの String 値を取得しており、それらをデータベースに配置する必要があります。しかし、適切な解決策が見つかりません。

何か案は?

ありがとう。

4

1 に答える 1

2

これ:

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

する必要があります:

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

PreparedStatement で 2 つの変数のみを設定しているため、1 からカウントを開始する必要があります。セッターメソッドで使用される整数は、指定された SQL 文字列のパラメーター リストではなく、ステートメント内の疑問符と一致する必要があります。

于 2012-05-19T16:28:38.630 に答える