首页 > 数据库 > mysql教程 > 为什么我收到'java.sql.SQLException:参数索引超出范围”?

为什么我收到'java.sql.SQLException:参数索引超出范围”?

Susan Sarandon
发布: 2024-12-24 00:24:20
原创
949 人浏览过

Why Am I Getting

java.sql.SQLException: 参数索引超出范围 (1 > 参数个数,即 0)

出现此错误当您尝试在准备好的语句中设置参数时,该参数在 SQL 中没有相应的占位符

原因:

  • SQL 查询未包含足够的占位符 (?) 来满足语句中设置的参数数量。
  • 您错误地将参数化语句与非参数化语句一起使用

解决方案:

要解决此错误,请确保 SQL 查询包含所设置参数的正确数量的占位符。例如:

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);
登录后复制

附加说明:

  • 参数索引从 1 开始,因此请确保以正确的顺序设置它们。
  • 不要在 SQL 查询中引用占位符,因为这会导致它们被视为字符串
  • 如果使用非参数化查询,则应直接在查询字符串中设置参数:
String sql = String.format("INSERT INTO tablename (col1, col2, col3) VALUES (%s, %s, %s)", val1, val2, val3);
登录后复制

参考文献:

  • JDBC 教程 - 准备好的语句: https://docs.oracle.com/javase/tutorial/jdbc/preparedstatements.html

以上是为什么我收到'java.sql.SQLException:参数索引超出范围”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板