异常:java.sql.SQLException: Parameter index out of range (2 > number of parameters, which is 1)
翻译过来就是:sql.SQLException:参数索引超出范围(2>参数个数)
白话就是:sql里需要个2参数,但是只传了1个参数
在eclipse中连接数据库,使用语句:
String sql = "SELECT * FROM s_admin WHERE name=? and password";
然后就报了上面的错误。网上的方法也看了看,最后自己琢磨发现下面有语句
reparedStatement prst= con.prepareStatement(sql);//把SQL语句传给数据库对象
prst.setString(1,admin.getName());
prst.setString(2, admin.getPassword());
这里传入了两个参数,一个是Name ,一个是Password。所以很明显,
错误就是:password没有传进去。
重新返回看第一行代码 String sql = “SELECT * FROM s_admin WHERE name=? and password”;
发现password后面什么都没有!!!
因为我要遍历所有的非null的name和password,所以都写成 =?
改正(password后面加上英文状态下问号):
String sql = "SELECT * FROM s_admin WHERE name=? and password=?";