首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >java.sql.SQLException:参数索引越界(2 >参数个数,为0)

java.sql.SQLException:参数索引越界(2 >参数个数,为0)
EN

Stack Overflow用户
提问于 2013-04-24 15:54:53
回答 5查看 61.1K关注 0票数 4
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Brothers extends javax.swing.JFrame {

    /**
     * declaring connection and SQL statement
     */

    Connection cn;
    Statement st;
    PreparedStatement pstmt=null;
    PreparedStatement pst;
    ResultSet rs;
    Object fname, mname, lname, bdate, nation, statusq,InstNo,  photo, combo, place, mimi; 
    int status;



    public Brothers() {        
        dbconnect _db = new dbconnect();

/*//////////////the above is just to show that I have two prepared statement each for each sql statement that i have //////////*/
        try {
            Class.forName("com.mysql.jdbc.Driver");
            //String unicode= "?useUnicode=yes&characterEncoding=UTF-8";
            cn = DriverManager.getConnection(_db.getHost(), _db.getUsername(), _db.getPassword());
            st=cn.createStatement(); 

 try{

        String Sql="INSERT INTO brothers(FirstName, MiddleName, LastName, BirthDate, BirthPlace, Nationality, InstituteNumber, Status, Picture) VALUES(?,?,?,?,?,?,?,?,?)";  
        pstmt=cn.prepareStatement(Sql);
        //pstmt.setString(1,txtTrial.getText());('?','?','?','?','?','?','?','?','?')
        pstmt.setString(2,txtFirtsName.getText());
        pstmt.setString(3,txtMiddleName.getText());
        pstmt.setString(4,txtLastName.getText());
        pstmt.setString(5,((JTextField)chooserBirthDate.getDateEditor().getUiComponent()).getText());
        pstmt.setString(6,txtPlacBirth.getText());

        String nations=combonation.getSelectedItem().toString();
        pstmt.setString(7,nations);
        pstmt.setString(8,txtInstituteNo.getText());


        pstmt.setObject(9,combostatus.getSelectedItem());
        pstmt.setBytes(10, person_image);

      pstmt.executeUpdate(Sql);

        JOptionPane.showMessageDialog(null, "Saving Successfull");

        }

        catch(Exception e){

          //JOptionPane.showMessageDialog(null, e);
          e.printStackTrace(); 
    }  

当我尝试使用上面的代码插入数据时,它抛出了一个异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java.sql.SQLException: Parameter index out of range (10 > number of parameters, which is 9).
    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)

我已经检查过了,但是我找不到问题所在,请帮帮我!

EN

回答 5

Stack Overflow用户

发布于 2013-04-24 15:58:26

您将在位置%2而不是%1处开始插入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 pstmt.setString(2,txtFirtsName.getText());

将其更改为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pstmt.setString(1,txtFirtsName.getText());

对最后一个将出现的其他对象执行相同的操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pstmt.setBytes(9, person_image);
票数 6
EN

Stack Overflow用户

发布于 2014-06-18 11:52:14

问号?的数量必须等于该参数。

如果你有7个参数,那么你的语句中应该有7个问号,即insert into table name values(?,?,?,?,?,?,?)

票数 3
EN

Stack Overflow用户

发布于 2013-04-24 15:56:41

您的SQL语句中只有9个参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String Sql="INSERT INTO brothers(FirstName, MiddleName, LastName, BirthDate, BirthPlace, Nationality, InstituteNumber, Status, Picture) VALUES(?,?,?,?,?,?,?,?,?)";

当您注释掉第一个setString方法调用时,您应该已经为后面的调用重新编号了参数索引。它们的编号应该是1- 9,而不是2- 10。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16196670

复制
相关文章
python 获取环境变量
参考 https://docs.python.org/2/library/os.html
py3study
2020/01/06
8700
如何在单元测试中设置系统环境变量
有时我们需要通过读取系统环境变量来获取一些有用的信息,比如系统路径、临时目录等。在系统真正运行的时候我们可以通过启动命令行,如:java -Dxxx.xxx=xxxx …,或者使用System.setProperty(“xxx.xxx”, “xxx.xxx”)来设置系统环境变量。但在单元测试时如何设置这些系统环境变量又成了一个让人头疼的问题。有些小伙伴是在setUp方法里设置,比如:
Allen Cheng
2018/09/10
8.1K0
iOS开发-获取全部环境变量iOS开发-获取全部环境变量
在Xcode中选中Target然后打开Edit Scheme,当前打开OBJC_PRINT_LOAD_METHODS环境变量。
用户8893176
2021/08/09
1.6K0
iOS开发-获取全部环境变量iOS开发-获取全部环境变量
如何在gin中获取响应体内容?
实现思路: 对gin的responseWriter进行包装, 每次写往请求方写响应数据的时候,将响应数据返回出去。step1: 定义一个新的CustomResponseWriter,通过组合方式持有一个gin.ResponseWriter和response body缓存。type CustomResponseWriter struct { gin.ResponseWriter body *bytes.Buffer}func (w CustomResponseWriter) Write(b []byt
Johns
2021/04/10
11.7K0
如何在gin中获取响应体内容?
如何在Bash中获取数组长度?
在Bash脚本中,数组是一种常用的数据结构,用于存储多个值。在处理数组时,经常需要知道数组的长度,即数组中元素的个数。本文将详细介绍如何在Bash中获取数组长度的方法,以帮助您更好地处理数组操作。
网络技术联盟站
2023/06/17
1.3K0
如何在Bash中获取数组长度?
PHP - 环境变量获取参数
如果fpm是用sudo方式启动,默认sudo会禁用一些环境变量,可以通过以下方式放开限制
断痕
2021/01/21
1.8K0
PHP - 环境变量获取参数
如何在windows下和linux下获取文件(如exe文件)的详细信息和属性
最近在项目开发中,由cs开发的exe的程序,需要自动升级,该exe程序放在linux下,自动升级时检测不到该exe程序的版本号信息,但是我们客户端的exe程序需要获取服务器上新程序的版本号信息。最后由我用java实现linux上exe文件的版本号读取功能。下面是详细代码:
业余草
2019/01/21
6K0
如何在windows下和linux下获取文件(如exe文件)的详细信息和属性
如何在Java中获取context-param值?
“ context-param”标记在“ web.xml”文件中定义,并且为整个Web应用程序提供参数。
全栈程序员站长
2022/09/13
2.9K0
如何在 React 中获取点击元素的 ID?
在 React 应用中,我们经常需要根据用户的点击事件来执行相应的操作。在某些情况下,我们需要获取用户点击元素的唯一标识符(ID),以便进行进一步的处理。本文将详细介绍如何在 React 中获取点击元素的 ID,并提供示例代码帮助你理解和应用这个功能。
网络技术联盟站
2023/06/07
3.5K0
如何在小程序中获取用户信息
在以前的文章中,我们介绍了小程序的登录鉴权功能,方便开发者去获取用户的appid和session_key以便确认用户的身份。但是,仅仅通过appid和session_key不能去获取用户的信息。那么,这篇文章中,我们将介绍如何在小程序中获取用户的昵称、头像、性别、城市等信息。
it大叔
2019/01/25
6.7K0
如何在小程序中获取用户信息
Jenkins Python Plugin获取环境变量
官方wiki:https://wiki.jenkins-ci.org/display/JENKINS/Python+Plugin
donghui
2019/04/19
2.1K0
Jenkins Python Plugin获取环境变量
教你如何在linux配置环境变量
输入下面命令 cd /etc/ vim profile 在末尾添加环境变量 PATH="$PATH:路径" export PATH 保存退出 重新加载环境变量 source /etc/profile
切图仔
2022/09/08
2.6K0
教你如何在linux配置环境变量
python获取linux环境变量_linux如何设置环境变量
为了演示我的意思,采用两个大致相同的程序(C中的第一个,python中的另一个):
全栈程序员站长
2022/11/10
8.4K0
Request.ServerVariables获取环境变量
本文由来源 21aspnet,由 javajgs_com 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。
Java架构师必看
2021/03/22
6800
如何在Power Query中获取数据——表格篇(7)
Table.SelectRowsWithErrors(tableas table,optional columns as nullable list)as table
逍遥之
2020/03/23
2.5K0
如何在小程序中添加广告并获取收益
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xmt1139057136/article/details/89452949
业余草
2019/05/07
5.3K0
如何在小程序中添加广告并获取收益
pandas | 如何在DataFrame中通过索引高效获取数据?
上篇文章当中我们简单介绍了一下DataFrame这个数据结构的一些常见的用法,从整体上大概了解了一下这个数据结构。今天这一篇我们将会深入其中索引相关的应用方法,了解一下DataFrame的索引机制和使用方法。
TechFlow-承志
2020/07/10
13.7K0
pandas | 如何在DataFrame中通过索引高效获取数据?
如何在Power Query中获取数据——表格篇(3)
Table.Last(table as table, optionaldefault as any)as any
逍遥之
2020/03/23
2.5K0
如何在Power Query中获取数据——表格篇(1)
Table.ColumnNames(table as table) as list
逍遥之
2020/03/23
3.2K0
点击加载更多

相似问题

jQuery移动版动态更改按钮颜色

20

更改jquery移动滑块微调按钮的颜色

20

单击jQuery移动设备时更改按钮颜色

10

jquery移动按钮背景颜色

71

jquery移动css。更改颜色

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文