1、后台方法返回一个包含数组(List)数据的的page对象:
2、(前端可根据page对象判断是否有首尾与上下页,以及根据页码导航)
public Page queryOjctsByPage(String sql,Object []params,int pageNo,int size)throws SQLException{//params参数个数,size显示个数,pageNo当前页面
Connection conn =null;
PreparedStatement pstmt=null;
ResultSet rs=null;
Page page=null;
List<User> datas=new ArrayList<User>();
try{
int start=(pageNo-1)*size;
conn=DbUtil.getConn();
pstmt=conn.prepareStatement(sql+" limit "+start+","+size);//start开始位置
int index=1;
if(params!=null){
for(Object param:params){ //遍历
if(param instanceof String){
pstmt.setString(index++, (String)param);
}
if(param instanceof Integer){
pstmt.setInt(index++, (Integer)param);
}
if(param instanceof Float){
pstmt.setFloat(index++, (Float)param);
}
}
}
rs=pstmt.executeQuery();
while(rs.next()){
User user=rsToObject(rs); //rsToObject结果集转user对象
datas.add(user);
}
//统计SQL对应记录数
int total=count(sql, params);
page=new Page(total, pageNo, size, datas); //total总页数,pageNo当前页面,size每页显示数据条数,datas是List数据数组
rs.close();
pstmt.close();
conn.close();
return page;
}catch(SQLException e){
e.printStackTrace();
throw e;
}
}