public ResultSet readSubSet(int No, String name, String case) throws SQLException {
preparedStatement = connect.prepareStatement("SELECT * FROM target WHERE myName=? AND myCase=? LIMIT ?,10");
preparedStatement.setString(8, name);
preparedStatement.setString(6, case);
preparedStatement.setInt(1, No);
resultSet = preparedStatement.executeQuery();
return resultSet;
}
跑完后我得到了:java.sql.SQLException: Parameter index out of range (8 > number of parameters, which is 2).
我的表定义myName
而myCase
是TEXT
,我可以使用prepareStatement.setString
答案 0 :(得分:1)
当您调用setString
时,传入两个参数,第一个是您要填充的参数的索引,第二个是您填充它的值。在您的情况下,您希望prepareStatement.setString(1,name);
填写第一个参数prepareStatement.setString(2,case);
以填写第二个参数,依此类推。
答案 1 :(得分:0)
在SQL中,您只有3个变量,并且您在prepareStatement.setString(8,name)中将变量8设置为名称...
看看@ http://download.oracle.com/javase/tutorial/jdbc/basics/prepared.html#supply_values_ps