首先在原有的数据库实体bean上在建立一个分页实体bean
/**
* 用于展示分页数据的Javabean对象
* @author Lenovo
*
*/
public class PageenationBean {
private Integer currPage;//当前页数
private Integer totalPage;//总页数
private List dataList;//table的数据
public Integer getCurrPage() {
return currPage;
}
public void setCurrPage(Integer currPage) {
this.currPage = currPage;
}
public Integer getTotalPage() {
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public List getDataList() {
return dataList;
}
public void setDataList(List dataList) {
this.dataList = dataList;
}
}
然后在持久层和业务层书写分页查询的方法
持久层:
public interface IUserDao {
/**
* 获取总条数
* @return
*/
public int getTotalCount();
/**
* 通过起始索引获取数据
* @param StartIndex
* @return
*/
public List getUserListByStartIndex(int StartIndex);
业务层:
public interface IUserService {
/**
* 获取总页数
* @return
*/
public int getTotalPage();
/**
* 通过起始索引获取数据
* @param StartIndex
* @return
*/
public List getUserListByCurrPage(int currPage);
然后实现接口方法
持久类接口实现:
public class UserDaoImpl extends BaseDao implements IUserDao{
@Override
public int getTotalCount() {
this.setConnection();
int totalCount = 0;
try {
ps = con.prepareStatement("select count(*) from stuscore");
rs = ps.executeQuery();
if(rs.next()) {
totalCount =rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}
this.closeConnection();
return totalCount;
}
@Override
public List getUserListByStartIndex(int StartIndex) {
List list = new ArrayList();
this.setConnection();
try {
ps = con.prepareStatement("select * from stuscore limit ?,5");
ps.setInt(1, StartIndex);
rs=ps.executeQuery();
while(rs.next()) {
UserBean user=new UserBean();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setGrade(rs.getString("grade"));
user.setSex(rs.getString("sex"));
user.setAge(rs.getInt("age"));
user.setScore(rs.getInt("score"));
list.add(user);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
this.closeConnection();
}
return list;
}
业务类接口实现:
public class UserServiceImpl implements IUserService{
private IUserDao dao= new UserDaoImpl();
@Override
public int getTotalPage() {
//得到数据总条数
int totalCount= dao.getTotalCount();
//计算总页数公式:totalPage= (totalCount + pageSize-1)/pageSize
int totalPage = (totalCount+5-1)/5;
return totalPage;
}
@Override
public List getUserListByCurrPage(int currPage) {
//通过当前页计算起始索引
int startIndex = (currPage-1)*5;
//通过起始索引查询数据
List userList =dao.getUserListByStartIndex(startIndex);
return userList;
}
然后 书写servlet方法
@WebServlet("/ShowUserListServlets")
public class ShowUserListServlets extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//动态获取当前第几页并做计算
String operation = request.getParameter("operation");
String currPageStr = request.getParameter("currPage");
int currPage = 1;
//调取业务层查询数据
IUserService service= new UserServiceImpl();
//获取总页数
int totalPage = service.getTotalPage();
if(currPageStr == null) {
currPage = 1;
}else if("首页".equals(operation)){
currPage = 1;
}else if("上一页".equals(operation)) {
currPage = Integer.parseInt(currPageStr)-1;
if(currPage <= 0) {
currPage = 1;
}
}else if("下一页".equals(operation)) {
currPage = Integer.parseInt(currPageStr)+1;
if(currPage >= totalPage) {
currPage = totalPage;
}
}
List userList = service.getUserListByCurrPage(currPage);
//构建javabean对象-PagenationBean
PageenationBean pagenationBean = new PageenationBean();
pagenationBean.setCurrPage(currPage);
pagenationBean.setTotalPage(totalPage);
pagenationBean.setDataList(userList);
//放入作用域
request.setAttribute("page", pagenationBean);
request.getRequestDispatcher("userList.jsp").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
最后用将jsp作为显示
pageEncoding="utf-8"%>
Insert title here学号 | 姓名 | 性别 | 年龄 |
---|---|---|---|
${u.id } | ${u.name } | ${u.sex} | ${u.age} |
第${page.currPage }页/共${page.totalPage }页
班级:
性别:
成绩段:
至
原文:https://www.cnblogs.com/wind-copy1234/p/11839378.html