首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java.sql.SQLException:参数索引超出范围(1 >参数个数,为0)

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

Stack Overflow用户
提问于 2015-09-21 06:03:46
回答 2查看 575关注 0票数 0

我对这个函数有一个问题

代码语言:javascript
运行
复制
String القيمة=jTextField3.getText();
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try{
    Class.forName("com.mysql.jdbc.Driver");
    conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/cars","root","123456");
    pstmt=conn.prepareStatement("select القيمة from eradat WHERE DATE_FORMAT(التاريخ, \"%m-%Y\") = \"01-2015\";");
    pstmt.setString(1,القيمة);
    rs=pstmt.executeQuery();
    while(rs.next()){
        jTextField3.setText(rs.getString("القيمة"));
    }
}
catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}
finally{
    try{
        conn.close();
        pstmt.close();
        rs.close();
    }
    catch(Exception e){

    }
} 

我得到错误信息: java.sql.SQLException:参数索引超出范围(1 >参数个数,为0)。

EN

回答 2

Stack Overflow用户

发布于 2015-09-21 15:09:16

您正在尝试向查询添加一个参数,该参数不需要参数,只需从代码中删除pstmt.setString(1,القيمة);,以使PreparedStatement不将任何参数绑定到您给出的查询中。因此,try catch块中的代码应该如下所示:

代码语言:javascript
运行
复制
try{
  Class.forName("com.mysql.jdbc.Driver");
  conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/cars","root","123456");
  pstmt=conn.prepareStatement("select القيمة from eradat WHERE DATE_FORMAT(التاريخ, \"%m-%Y\") = \"01-2015\";");
  rs=pstmt.executeQuery();
  while(rs.next()){
    jTextField3.setText(rs.getString("القيمة"));
  }
}
catch(Exception e){
  JOptionPane.showMessageDialog(null, e);
}

如果需要为查询设置参数,则需要在其中使用占位符符号?,在这种情况下,您可以在查询中设置值。那么查询可能是这样的:

代码语言:javascript
运行
复制
select القيمة from eradat WHERE DATE_FORMAT(التاريخ, \"%m-%Y\") = \"?\";

并且您可以使用以下命令设置where子句的值

代码语言:javascript
运行
复制
pstmt.setString(1,"01-2015");
票数 0
EN

Stack Overflow用户

发布于 2015-09-21 15:24:02

您正在尝试使用未在语句中定义的预准备语句设置参数。因此,只需删除/注释代码中的以下行:

代码语言:javascript
运行
复制
pstmt.setString(1,القيمة);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32684783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档