public List<Items> fpage(int page,int pageSize,int id) throws SQLException {
String totalSql="";
String rumSql="";
int total=-1;
int pages=-1;
Connection conn=JDBCUtils.getConn();
PreparedStatement prs = conn.prepareStatement(totalSql);
prs.setInt(1, id);
ResultSet rul = prs.executeQuery();
//总条数
while(rul.next()) {
total=
rul.getInt(1);
}
rul.close();
prs.close();
conn.close();
//确定总页数
int mod=total%pageSize;
if(mod==0) {
pages=total/pageSize;
}else if(mod>0){
pages=total/pageSize+1;
}
//页数是否为最后一页
if(page>pages) {
page=pages;
}else if(page<0) {
page=1;
}
//计算开始和结束的位置
int begin = (page-1)*pageSize+1;
int end = begin+pageSize-1;
Connection connLast = JDBCUtils.getConn();
PreparedStatement prs1=connLast.prepareStatement(rumSql);
prs1.setInt(1, id);
prs1.setInt(2,begin);
prs1.setInt(3, end);
ResultSet rul1 = prs1.executeQuery();
List<Items> list = new ArrayList<>();
while(rul1.next()) {
//一个对象
Items item = new Items();
item.setId(
rul.getInt(1));
item.setCid(rul1.getString(2));
item.setTitle(rul1.getString(3));
item.setPrice(rul1.getInt(4));
item.setImage(rul1.getString(5));
list.add(item);
System.out.println("结果"+list.size());
}
rul1.close();
connLast.close();
return list;
}
进入循环中,并不能打印出结果,主要是红色部分是上面的结果集,已经到最后,并且被关闭,写代码的时候得仔细了 |