PreparedStatement替换值,执行SQL语句报错

参数:pageNumber:0;pageSize:5;
做的一个分页查询数据方法;
为什么执行红色那块就跳异常里边去了,哪里写错了呢,请指出!
[code="java"]
public List allPersons(int pageNumber, int pageSize) {
List list = new ArrayList();
String sql = "select * from person limit ?,?";
PreparedStatement ps = null;
try {
ps = dbp.getConn().prepareStatement(sql);
ps.setInt(1, (pageNumber-1)*pageSize);
ps.setInt(2, pageSize);
[color=red]ResultSet rs = ps.executeQuery();[/color]
while(rs.next()){
Person person = new Person();
person.setPersonId(rs.getInt("personId"));
person.setPersonName(rs.getString("personName"));
person.setPersoninfo(rs.getString("personInfo"));
person.setPersonAge(rs.getInt("personAge"));
list.add(person);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
[/code]

5个回答

因为你的pageNumber:0,然后执行 ps.setInt(1, (pageNumber-1)*pageSize);
(pageNumber-1)*pageSize为负数。。。

stmn1320
骑驴快跑 确实是,在业务层处理的时候少给pageNumber处理了一次
大约 7 年之前 回复
henghanan
henghanan 所以ps.executeQuery();执行会报错。。。
大约 7 年之前 回复

pageNumber:0,然后执行 ps.setInt(1, (pageNumber-1)*pageSize);
(pageNumber-1)*pageSize为负数

参数:pageNumber:0;pageSize:5;

传的分页页数这些数据应该在业务层处理确定没问题了,再传进来

:cry: pageNumber最小值不得小于1,否则为负数,异常之!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!