求struts+hibernate实现mysql分页的详细代码
求struts+hibernate实现mysql分页的详细代码,越详细越好,实在是做不出来了,ToT.......帮帮忙,在线等了.......
求struts+hibernate实现mysql分页的详细代码,越详细越好,实在是做不出来了,ToT.......帮帮忙,在线等了....
展开
展开全部
分页不难 我分3段代码给你(dao 分页辅助业务类 Struts的Action 这写做完以后JSP里就可以随意使用了) 对于楼主没写过分页 要看的比较仔细 注释我也的不多 都是根据自己的思路写的
分页辅助类
-----------------------------
package biz;
/**
* 分页辅助类
* @author Administrator
*
*/
public class paghelp {
private int rows;//数据库总记录数
private int pagsize;//页大小
private int currNO;//当前页
private int nextNO;//下一页
private int refNO;//上一页
private int pagcount;//总共有多少页
//计算出下一页第一条纪录在数据库中的行标
public int getrow()
{
return (currNO-1)*pagsize;
}
public void Enum(int rows,int pagsize)
{
this.rows=rows;
this.pagsize=pagsize;
this.Calepagecount();
}
//构造 把数据库的总纪录数 和 要一页显示多少条纪录 传来
/*public paghelp(int rows,int pagsize)
{
this.rows=rows;
this.pagsize=pagsize;
this.Calepagecount();
}*/
/*public static void main(String[] args)
{
paghelp p=new paghelp();
p.jisuan(15, 5);
p.setCurrNO(2);
System.out.println(p.getPagcount());
System.out.println(p.getNextNO());
System.out.println(p.getRows());
}*/
//计算总共有多少页
public void Calepagecount()
{
if(rows % pagsize ==0)
{
this.pagcount=rows / pagsize;
}else
{
this.pagcount=rows / pagsize +1;
}
}
public int getRows() {
return rows;
}
public void setRows(int rows) {
this.rows = rows;
}
public int getPagsize() {
return pagsize;
}
public void setPagsize(int pagsize) {
this.pagsize = pagsize;
}
public int getCurrNO() {
return currNO;
}
//设置当前页
public void setCurrNO(int currNO) {
if(currNO > this.pagcount)
{
this.currNO=this.pagcount;
}else if( currNO < 1 )
{
this.currNO = 1;
}else
{
this.currNO=currNO;
}
}
//设置下一页
public int getNextNO() {
if(currNO + 1 >this.pagcount)
{
nextNO = this.pagcount;
}else
{
nextNO = currNO + 1;
}
return nextNO;
}
//设置上一页
public int getRefNO() {
if(currNO -1 <1)
{
refNO =1;
}else
{
refNO=currNO -1;
}
return refNO;
}
public paghelp()
{
}
//返回总页数
public int getPagcount() {
return pagcount;
}
public void settPagcount(int pagcount) {
this.pagcount=pagcount;
}
}
dao
-------------------------
/**
* 分页提取数据库宠物信息(测试信息)
* @param start 参数start 从数据库的哪个下标开始取(分页辅助类已经算好)
* @param size 参数size 每次取多少个(可以是常量)
* @return list宠物集合
*/
public List<PetInfo> getAllPetMes(int start , int size)
{
List<PetInfo> pets=null;
super.openSession();
query=session.createQuery("from PetInfo p order by(p.petStrength+p.petCute+p.petLove) desc");
query.setFirstResult(start);
query.setMaxResults(size);
pets=query.list();
super.closeSession();
return pets;
}
Struts的Action
------------------------------
package web;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import biz.paghelp;
import dao.PetDiaryDao;
import dao.PetinfoDao;
import entity.PetDiary;
import entity.PetInfo;
public class btnSelectAction extends DispatchAction {
PetinfoDao petinfodao=new PetinfoDao();
PetDiaryDao petdiarydao=new PetDiaryDao();
private static final int SIZE =5;//分页大小
paghelp p=new paghelp();
/**
* 按钮查询
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward petSelect(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
btnForm btnform=(btnForm)form;
List<PetInfo> pets=null;
//查询全部
if(btnform.getPetName().length()==0&&btnform.getPetType().equals("-1")
&&btnform.getPetOwnerName().length()==0)
{
//把数据库的总纪录数 和 页大小 放到分页辅助类
p.Enum(petinfodao.petCount(),SIZE);
//取出当前页码 默认1 放到分页辅助类对象中
p.setCurrNO(btnform.getPagnum());
pets=petinfodao.getAllPetMes(p.getrow(),p.getPagsize());
request.setAttribute("pets", pets);
request.setAttribute("p", p);
}else
{
PetInfo pet=new PetInfo();
pet.setPetName(btnform.getPetName());//宠物名
pet.setPetType(Integer.parseInt(btnform.getPetType()));//宠物类型
pet.setPetOwnerName(btnform.getPetOwnerName());//宠物主人名
pets=petinfodao.muchSelectPet(pet);
p.Enum(pets.size(),SIZE);
//取出当前页码 默认1 放到分页辅助类对象中
p.setCurrNO(btnform.getPagnum());
pets=petinfodao.muchSelectPet(pet,p.getrow(),SIZE);
request.setAttribute("pets", pets);
request.setAttribute("p", p);
}
return mapping.findForward("pet_list");
}
分页辅助类
-----------------------------
package biz;
/**
* 分页辅助类
* @author Administrator
*
*/
public class paghelp {
private int rows;//数据库总记录数
private int pagsize;//页大小
private int currNO;//当前页
private int nextNO;//下一页
private int refNO;//上一页
private int pagcount;//总共有多少页
//计算出下一页第一条纪录在数据库中的行标
public int getrow()
{
return (currNO-1)*pagsize;
}
public void Enum(int rows,int pagsize)
{
this.rows=rows;
this.pagsize=pagsize;
this.Calepagecount();
}
//构造 把数据库的总纪录数 和 要一页显示多少条纪录 传来
/*public paghelp(int rows,int pagsize)
{
this.rows=rows;
this.pagsize=pagsize;
this.Calepagecount();
}*/
/*public static void main(String[] args)
{
paghelp p=new paghelp();
p.jisuan(15, 5);
p.setCurrNO(2);
System.out.println(p.getPagcount());
System.out.println(p.getNextNO());
System.out.println(p.getRows());
}*/
//计算总共有多少页
public void Calepagecount()
{
if(rows % pagsize ==0)
{
this.pagcount=rows / pagsize;
}else
{
this.pagcount=rows / pagsize +1;
}
}
public int getRows() {
return rows;
}
public void setRows(int rows) {
this.rows = rows;
}
public int getPagsize() {
return pagsize;
}
public void setPagsize(int pagsize) {
this.pagsize = pagsize;
}
public int getCurrNO() {
return currNO;
}
//设置当前页
public void setCurrNO(int currNO) {
if(currNO > this.pagcount)
{
this.currNO=this.pagcount;
}else if( currNO < 1 )
{
this.currNO = 1;
}else
{
this.currNO=currNO;
}
}
//设置下一页
public int getNextNO() {
if(currNO + 1 >this.pagcount)
{
nextNO = this.pagcount;
}else
{
nextNO = currNO + 1;
}
return nextNO;
}
//设置上一页
public int getRefNO() {
if(currNO -1 <1)
{
refNO =1;
}else
{
refNO=currNO -1;
}
return refNO;
}
public paghelp()
{
}
//返回总页数
public int getPagcount() {
return pagcount;
}
public void settPagcount(int pagcount) {
this.pagcount=pagcount;
}
}
dao
-------------------------
/**
* 分页提取数据库宠物信息(测试信息)
* @param start 参数start 从数据库的哪个下标开始取(分页辅助类已经算好)
* @param size 参数size 每次取多少个(可以是常量)
* @return list宠物集合
*/
public List<PetInfo> getAllPetMes(int start , int size)
{
List<PetInfo> pets=null;
super.openSession();
query=session.createQuery("from PetInfo p order by(p.petStrength+p.petCute+p.petLove) desc");
query.setFirstResult(start);
query.setMaxResults(size);
pets=query.list();
super.closeSession();
return pets;
}
Struts的Action
------------------------------
package web;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import biz.paghelp;
import dao.PetDiaryDao;
import dao.PetinfoDao;
import entity.PetDiary;
import entity.PetInfo;
public class btnSelectAction extends DispatchAction {
PetinfoDao petinfodao=new PetinfoDao();
PetDiaryDao petdiarydao=new PetDiaryDao();
private static final int SIZE =5;//分页大小
paghelp p=new paghelp();
/**
* 按钮查询
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward petSelect(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
btnForm btnform=(btnForm)form;
List<PetInfo> pets=null;
//查询全部
if(btnform.getPetName().length()==0&&btnform.getPetType().equals("-1")
&&btnform.getPetOwnerName().length()==0)
{
//把数据库的总纪录数 和 页大小 放到分页辅助类
p.Enum(petinfodao.petCount(),SIZE);
//取出当前页码 默认1 放到分页辅助类对象中
p.setCurrNO(btnform.getPagnum());
pets=petinfodao.getAllPetMes(p.getrow(),p.getPagsize());
request.setAttribute("pets", pets);
request.setAttribute("p", p);
}else
{
PetInfo pet=new PetInfo();
pet.setPetName(btnform.getPetName());//宠物名
pet.setPetType(Integer.parseInt(btnform.getPetType()));//宠物类型
pet.setPetOwnerName(btnform.getPetOwnerName());//宠物主人名
pets=petinfodao.muchSelectPet(pet);
p.Enum(pets.size(),SIZE);
//取出当前页码 默认1 放到分页辅助类对象中
p.setCurrNO(btnform.getPagnum());
pets=petinfodao.muchSelectPet(pet,p.getrow(),SIZE);
request.setAttribute("pets", pets);
request.setAttribute("p", p);
}
return mapping.findForward("pet_list");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询