java.sql.SQLException 参数索引超出范围

标签 java mysql mysql-error-1064

当我使用这段代码时,它显示 java.sql.SQLException Parameter index out of range (1 > number of parameters, which is 0):

private void cmd_searchActionPerformed(java.awt.event.ActionEvent evt) {                                           
try{

 String sql = "select * from STD where Name like '%?%' ";
      pst=conn.prepareStatement(sql);
      pst.setString(1,TXT_STUDENTNAME.getText());
      String value=TXT_STUDENTNAME.getText();
      rs=pst.executeQuery();
       jTable1.setModel(DbUtils.resultSetToTableModel(rs));

             }catch(Exception e){
       JOptionPane.showMessageDialog(null,e);
   }        
}     

如何从这个异常中恢复?

最佳答案

尝试从sql中删除通配符并将其添加到值中:

String sql = "select * from STD where Name like ? ";
pst=conn.prepareStatement(sql);
pst.setString(1,"%"+TXT_STUDENTNAME.getText()+"%");

Similar question here

关于java.sql.SQLException 参数索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13319481/

相关文章:

mysql - 错误 1064 mysql (42000) 在 `if then ; else ; end if` 中省略分号时

mysql - 无法在 mysql 表中使用电子邮件 ID 进行查询

java - 安卓 Java : Modification of instance variable inside button click handler

java - LinkedBlockingQueue 无法等待线程执行

php - 无法使用php在mysql数据库中保存日期

mysql - 日期搜索与查询之间的奇怪行为

mysql - 所有记录的空值

java - 复合 PK 字段的分离标准?

java - 更新值为 List 的 HashMap 条目

mysql - mysql select 语句中的回退条件