使用setString无效问题,卡主了许久

qq_40450894 2017-10-20 10:23:17
代码很简单,但是一运行就报错,将命令复制到sql里运行可以查询,用到的
字符串类型全都是Verchar2,不是char,报错显示无效的列索引,求大神支招
卡主我半天了
package cn.tedu.jdbc.day02;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

//利用ps 实现查询
public class Demo06 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Connection conn=null;
try {
conn=DbUtils.getConnection();
String sql="select*from rabin_demo where name like ?";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,"%W%");
ResultSet rs= ps.executeQuery();
while(rs.next()){
//getInt(序列号),利用序列号获取值
int id=rs.getInt(1);
String name=rs.getString(2);
System.out.println(id+","+name);

}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
DbUtils.close(conn);
}
}

}

报错

java.sql.SQLException: 无效的列索引
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OraclePreparedStatement.setStringInternal(OraclePreparedStatement.java:5329)
at oracle.jdbc.driver.OraclePreparedStatement.setString(OraclePreparedStatement.java:5321)
at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135)
at org.apache.commons.dbcp.DelegatingPreparedStatement.setString(DelegatingPreparedStatement.java:135)
at cn.tedu.jdbc.day02.Demo06.main(Demo06.java:17)
...全文
371 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_40450894 2017-10-20
  • 打赏
  • 举报
回复
引用 1 楼 u010385632的回复:
sql语句的问号是不是中文的
多谢老铁,出现这样的错误也是贼尴尬
u010385632 2017-10-20
  • 打赏
  • 举报
回复
sql语句的问号是不是中文的

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧