SQLException: Parameter Index Out of Range
パラメータ化された SQL クエリを実行すると、エラー「java.sql.SQLException:」が発生する場合があります。パラメータインデックスが範囲外です。」この問題は、クエリで指定されたパラメータの数と PreparedStatement に渡される実際のパラメータの数が一致しないことが原因で発生します。
原因:
このエラーは、次の操作を実行しようとすると発生します。 PreparedStatement の setXxx() メソッドを使用してパラメータ値を設定しますが、SQL クエリにはそれに対応するプレースホルダ (?) が含まれていません。パラメータ。
解決策:
この問題を解決するには、SQL クエリに正しい数のプレースホルダーが含まれていることを確認します。パラメータのインデックスは 1 から始まり、各プレースホルダ (?) は setXxx() メソッドを使用して設定する必要がある特定のパラメータを示します。
例:
// Assuming "val1", "val2", and "val3" are valid values String sql = "INSERT INTO tablename (col1, col2, col3) VALUES (?, ?, ?)"; PreparedStatement preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, val1); preparedStatement.setString(2, val2); preparedStatement.setString(3, val3);
プレースホルダーの引用:
内のプレースホルダーを引用しないことに注意することが重要です。 SQL クエリ。これらを引用符で囲むと、SQL パーサーがそれらを実際の文字列値として解釈することになり、パラメーターのバインドが妨げられます。
追加リソース:
以上がPreparedStatement で「java.sql.SQLException: Parameter Index Out of Range」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。