分页总结:
通过当前页判断是否有上一页下一页和首尾页
通过总记录数得出总页数
public class Pager {
private int currentPage;//当前页码
private int pageSize=3;//每页记录数
private int totalPage;//总页数
private int totalSize;//总记录数
private boolean hasFirst;
private boolean hasPrevious;
private boolean hasNext;
private boolean hasLast;
//初始化
public Pager(int currentPage,int totalSize){
this.currentPage=currentPage;
this.totalSize=totalSize;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public boolean isHasFirst() {
if(this.currentPage == 1){
return false;
}
return true;
}
public void setHasFirst(boolean hasFirst) {
this.hasFirst = hasFirst;
}
public boolean isHasLast() {
if(this.currentPage == this.getTotalPage()){
return false;
}
return true;
}
public void setHasLast(boolean hasLast) {
this.hasLast = hasLast;
}
public boolean isHasNext() {
if(this.isHasLast()){
return true;
}
return false;
}
public void setHasNext(boolean hasNext) {
this.hasNext = hasNext;
}
public boolean isHasPrevious() {
if(this.isHasFirst()){
return true;
}
return false;
}
public void setHasPrevious(boolean hasPrevious) {
this.hasPrevious = hasPrevious;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
totalPage = totalSize/pageSize;
if(totalSize%pageSize!=0)
totalPage++;
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalSize() {
return totalSize;
}
public void setTotalSize(int totalSize) {
this.totalSize = totalSize;
}
}
//DAO
public List queryByPager(int currentPage,int pageSize){
//计算起始行从0开始
final int startRow = (currentPage-1)*pageSize ;
final int maxResults = pageSize;
//利用回调接口,调用Hibernate原生API
List bookList =(List) getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException,SQLException{
Query query = session.createQuery("From Book as b left join fetch b.category ")
.setFirstResult(startRow)
.setMaxResults(maxResults);
return query.list();
}
});
return bookList;
}
通过当前页判断是否有上一页下一页和首尾页
通过总记录数得出总页数
public class Pager {
private int currentPage;//当前页码
private int pageSize=3;//每页记录数
private int totalPage;//总页数
private int totalSize;//总记录数
private boolean hasFirst;
private boolean hasPrevious;
private boolean hasNext;
private boolean hasLast;
//初始化
public Pager(int currentPage,int totalSize){
this.currentPage=currentPage;
this.totalSize=totalSize;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public boolean isHasFirst() {
if(this.currentPage == 1){
return false;
}
return true;
}
public void setHasFirst(boolean hasFirst) {
this.hasFirst = hasFirst;
}
public boolean isHasLast() {
if(this.currentPage == this.getTotalPage()){
return false;
}
return true;
}
public void setHasLast(boolean hasLast) {
this.hasLast = hasLast;
}
public boolean isHasNext() {
if(this.isHasLast()){
return true;
}
return false;
}
public void setHasNext(boolean hasNext) {
this.hasNext = hasNext;
}
public boolean isHasPrevious() {
if(this.isHasFirst()){
return true;
}
return false;
}
public void setHasPrevious(boolean hasPrevious) {
this.hasPrevious = hasPrevious;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
totalPage = totalSize/pageSize;
if(totalSize%pageSize!=0)
totalPage++;
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getTotalSize() {
return totalSize;
}
public void setTotalSize(int totalSize) {
this.totalSize = totalSize;
}
}
//DAO
public List queryByPager(int currentPage,int pageSize){
//计算起始行从0开始
final int startRow = (currentPage-1)*pageSize ;
final int maxResults = pageSize;
//利用回调接口,调用Hibernate原生API
List bookList =(List) getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)throws HibernateException,SQLException{
Query query = session.createQuery("From Book as b left join fetch b.category ")
.setFirstResult(startRow)
.setMaxResults(maxResults);
return query.list();
}
});
return bookList;
}