带有PreparedStatement的JDBC UPDATE导致java.sql.SQLException:参数索引超出范围(3>参数数量,即2)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了带有PreparedStatement的JDBC UPDATE导致java.sql.SQLException:参数索引超出范围(3>参数数量,即2),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1847字,纯文字阅读大概需要3分钟。
内容图文
![带有PreparedStatement的JDBC UPDATE导致java.sql.SQLException:参数索引超出范围(3>参数数量,即2)](/upload/InfoBanner/zyjiaocheng/887/2f6ad55990a5410e82c2d13be83f52f9.jpg)
这个问题已经在这里有了答案: > java.sql.SQLException Parameter index out of range (1 > number of parameters, which is 0) [closed] 2个
我面临java.sql.SQLException:参数索引超出范围(3>参数数量,即2).同时更新“ reset_info”表的一两列,该表包含五列(id,mobile_tower_id,reset_value,date_time,clientip).
‘id’是自动生成的主键.
我想更新特定行的“ reset_value”
现在,以下是源代码:
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
String sql = "UPDATE reset_info SET reset_value = ? WHERE id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 100);
ps.setInt(3, 1000);
ps.executeUpdate();
conn.close();
以下是我的堆栈跟踪:
Connecting to database...
java.sql.SQLException: Parameter index out of range (3 > number of parameters, which is 2).
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3813)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3795)
at com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3840)
at com.mysql.jdbc.PreparedStatement.setInt(PreparedStatement.java:3784)
at cdot.dsa.cfms.dbconnect.NewClass.main(NewClass.java:38)
表格的每一列都必须放置占位符(‘?’)吗?
通过java.sql.Statement更新单个列可以正常工作,但是java.sql.preparedStatement却出现异常.
请帮忙.概念想法将受到高度赞赏.
解决方法:
ps.setInt(3,1000);必须为ps.setInt(2,1000);因为您只需要占位符即可.
Is it mandatory for to put placeholder(‘?’) for each column of the table?
占位符用于参数,而不用于列!
内容总结
以上是互联网集市为您收集整理的带有PreparedStatement的JDBC UPDATE导致java.sql.SQLException:参数索引超出范围(3>参数数量,即2)全部内容,希望文章能够帮你解决带有PreparedStatement的JDBC UPDATE导致java.sql.SQLException:参数索引超出范围(3>参数数量,即2)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。