骑驴快跑 2012-10-23 23:26 采纳率: 0%
浏览 474
已采纳

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条回答 默认 最新

  • henghanan 2012-10-23 23:46
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?