分页的过程
1 首先 我们可以做一个装所有页面属性的类
public class PageHandle {
private Integer pageNum;
private Integer pageSize;
private Integer totalRows;
private Integer totalPage;
private List<Dept> list;
public PageHandle(Integer pageNum, Integer pageSize) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
}
public Integer getPageNum() {
if (pageNum<1) {
pageNum=1;
}
if (pageNum>getTotalPage()) {
pageNum=getTotalPage();
}
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalRows() {
return totalRows;
}
public void setTotalRows(Integer totalRows) {
this.totalRows = totalRows;
}
public Integer getTotalPage() {
totalPage=(totalRows-1)/pageSize+1;
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public List<Dept> getList() {
return list;
}
public void setList(List<Dept> list) {
this.list = list;
}
}
public class PageHandle2<T> {
private Integer pageNum;
private Integer pageSize;
private Integer totalRows;
private Integer totalPage;
private List<T> list;
public PageHandle2(Integer pageNum, Integer pageSize) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public Integer getPageNum() {
if(pageNum<1){
pageNum=1;
}
if(pageNum>getTotalPage()){
pageNum = getTotalPage();
}
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalRows() {
return totalRows;
}
public void setTotalRows(Integer totalRows) {
this.totalRows = totalRows;
}
public Integer getTotalPage() {
totalPage=(totalRows-1)/pageSize+1;
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
}
2 我们在页面所需要的是数据均可以通过总条数来计算出来,每页显示的数是我们自己来定义,总页数是总条数/页面显示的数量 定义查询方法
public interface IDeptDao extends IBaseDao<Dept, Integer> {
PageHandle fenye(PageHandle pageHandle);
PageHandle2 paging(PageHandle2 pageHandle2);
}
@Repository
public class DeptDaoImpl extends BaseDaoImpl<Dept, Integer> implements IDeptDao{
@Override
public PageHandle fenye(PageHandle pageHandle) {
Session session = getSession();
pageHandle.setTotalRows(Integer.parseInt(session.createQuery("select count(deptno) from Dept").uniqueResult().toString()));
Query query = session.createQuery("from Dept");
pageHandle.setList(query.setFirstResult((pageHandle.getPageNum()-1)*pageHandle.getPageSize()).setMaxResults(pageHandle.getPageSize()).list());
return pageHandle;
}
@Override
public PageHandle2 paging(PageHandle2 pageHandle2) {
Session session =getSession();
//获得总记录数
Object uniqueResult = session.createQuery("select count(deptno) from Dept").uniqueResult();
String string = uniqueResult.toString();
int totalRows = Integer.parseInt(string);
pageHandle2.setTotalRows(totalRows);
// 查询分页
Query query = session.createQuery("from Dept");
query.setFirstResult((pageHandle2.getPageNum()-1)*pageHandle2.getPageSize());
query.setMaxResults(pageHandle2.getPageSize());
List list = query.list();
pageHandle2.setList(list);
return pageHandle2;
}
}
public interface IDeptService {
void save(Dept t);
void delect(Integer id);
void update(Dept t);
Dept get(Integer id);
List<Dept> getAll();
PageHandle fenye(PageHandle pageHandle);
PageHandle2 paging(PageHandle2 pageHandle2);
}
@Service
public class DeptServiceImpl implements IDeptService {
@Autowired
private IDeptDao deptDao;
@Override
public void save(Dept t) {
deptDao.save(t);
}
@Override
public void delect(Integer id) {
deptDao.delect(id);
}
@Override
public void update(Dept t) {
deptDao.update(t);
}
@Override
public Dept get(Integer id) {
return deptDao.get(id);
}
@Override
public List<Dept> getAll() {
return deptDao.getAll();
}
@Override
public PageHandle fenye(PageHandle pageHandle) {
return deptDao.fenye(pageHandle);
}
@Override
public PageHandle2 paging(PageHandle2 pageHandle2) {
return deptDao.paging(pageHandle2);
}
}
@Controller
@RequestMapping("/dept")
public class DeptController {
@Autowired
private IDeptService depts;
@RequestMapping("/list")
public String list(Integer inputSize,Integer inputNum,Model model){
int pageNum= inputNum == null? 1:inputNum ;
int pageSize= inputSize == null? 5:inputNum ;
PageHandle pageHandle =new PageHandle(pageNum,pageSize);
PageHandle fenye = depts.fenye(pageHandle);
model.addAttribute("pageHandle", fenye);
return "index";
}
@RequestMapping("/list1")
public String list1(Integer page, Integer size, Model model){
int pageNum = page == null?1:page;
int pageSize = size == null?6:size;
PageHandle2<Dept> pageHandle2 = new PageHandle2<Dept>(pageNum, pageSize);
PageHandle2 pag = depts.paging(pageHandle2);
model.addAttribute("pageCount", pag);
return "index";
}
}
以上的方法对应的有具体和泛型
1 首先 我们可以做一个装所有页面属性的类
public class PageHandle {
private Integer pageNum;
private Integer pageSize;
private Integer totalRows;
private Integer totalPage;
private List<Dept> list;
public PageHandle(Integer pageNum, Integer pageSize) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
}
public Integer getPageNum() {
if (pageNum<1) {
pageNum=1;
}
if (pageNum>getTotalPage()) {
pageNum=getTotalPage();
}
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalRows() {
return totalRows;
}
public void setTotalRows(Integer totalRows) {
this.totalRows = totalRows;
}
public Integer getTotalPage() {
totalPage=(totalRows-1)/pageSize+1;
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
public List<Dept> getList() {
return list;
}
public void setList(List<Dept> list) {
this.list = list;
}
}
public class PageHandle2<T> {
private Integer pageNum;
private Integer pageSize;
private Integer totalRows;
private Integer totalPage;
private List<T> list;
public PageHandle2(Integer pageNum, Integer pageSize) {
super();
this.pageNum = pageNum;
this.pageSize = pageSize;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public Integer getPageNum() {
if(pageNum<1){
pageNum=1;
}
if(pageNum>getTotalPage()){
pageNum = getTotalPage();
}
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalRows() {
return totalRows;
}
public void setTotalRows(Integer totalRows) {
this.totalRows = totalRows;
}
public Integer getTotalPage() {
totalPage=(totalRows-1)/pageSize+1;
return totalPage;
}
public void setTotalPage(Integer totalPage) {
this.totalPage = totalPage;
}
}
2 我们在页面所需要的是数据均可以通过总条数来计算出来,每页显示的数是我们自己来定义,总页数是总条数/页面显示的数量 定义查询方法
public interface IDeptDao extends IBaseDao<Dept, Integer> {
PageHandle fenye(PageHandle pageHandle);
PageHandle2 paging(PageHandle2 pageHandle2);
}
@Repository
public class DeptDaoImpl extends BaseDaoImpl<Dept, Integer> implements IDeptDao{
@Override
public PageHandle fenye(PageHandle pageHandle) {
Session session = getSession();
pageHandle.setTotalRows(Integer.parseInt(session.createQuery("select count(deptno) from Dept").uniqueResult().toString()));
Query query = session.createQuery("from Dept");
pageHandle.setList(query.setFirstResult((pageHandle.getPageNum()-1)*pageHandle.getPageSize()).setMaxResults(pageHandle.getPageSize()).list());
return pageHandle;
}
@Override
public PageHandle2 paging(PageHandle2 pageHandle2) {
Session session =getSession();
//获得总记录数
Object uniqueResult = session.createQuery("select count(deptno) from Dept").uniqueResult();
String string = uniqueResult.toString();
int totalRows = Integer.parseInt(string);
pageHandle2.setTotalRows(totalRows);
// 查询分页
Query query = session.createQuery("from Dept");
query.setFirstResult((pageHandle2.getPageNum()-1)*pageHandle2.getPageSize());
query.setMaxResults(pageHandle2.getPageSize());
List list = query.list();
pageHandle2.setList(list);
return pageHandle2;
}
}
public interface IDeptService {
void save(Dept t);
void delect(Integer id);
void update(Dept t);
Dept get(Integer id);
List<Dept> getAll();
PageHandle fenye(PageHandle pageHandle);
PageHandle2 paging(PageHandle2 pageHandle2);
}
@Service
public class DeptServiceImpl implements IDeptService {
@Autowired
private IDeptDao deptDao;
@Override
public void save(Dept t) {
deptDao.save(t);
}
@Override
public void delect(Integer id) {
deptDao.delect(id);
}
@Override
public void update(Dept t) {
deptDao.update(t);
}
@Override
public Dept get(Integer id) {
return deptDao.get(id);
}
@Override
public List<Dept> getAll() {
return deptDao.getAll();
}
@Override
public PageHandle fenye(PageHandle pageHandle) {
return deptDao.fenye(pageHandle);
}
@Override
public PageHandle2 paging(PageHandle2 pageHandle2) {
return deptDao.paging(pageHandle2);
}
}
@Controller
@RequestMapping("/dept")
public class DeptController {
@Autowired
private IDeptService depts;
@RequestMapping("/list")
public String list(Integer inputSize,Integer inputNum,Model model){
int pageNum= inputNum == null? 1:inputNum ;
int pageSize= inputSize == null? 5:inputNum ;
PageHandle pageHandle =new PageHandle(pageNum,pageSize);
PageHandle fenye = depts.fenye(pageHandle);
model.addAttribute("pageHandle", fenye);
return "index";
}
@RequestMapping("/list1")
public String list1(Integer page, Integer size, Model model){
int pageNum = page == null?1:page;
int pageSize = size == null?6:size;
PageHandle2<Dept> pageHandle2 = new PageHandle2<Dept>(pageNum, pageSize);
PageHandle2 pag = depts.paging(pageHandle2);
model.addAttribute("pageCount", pag);
return "index";
}
}
以上的方法对应的有具体和泛型