分享:Hibernate+Struts分页代码(三)

    技术2022-05-11  101

    这里是分页段的实现代码,分别继承AbstractSearch和AbstractList,实现预查询和分页查询:SearchCompany(预查询)、BaseComSearch(分页查询),代码如下: /*****************************SearchCompany类******************************/ package com.nyhr.struts.search; import com.nyhr.struts.frame.AbstractSearch; import com.nyhr.struts.form.SearchCompanyForm; import org.apache.struts.action.ActionForm; public class SearchCompany extends AbstractSearch{     private StringBuffer sql;     private SearchCompanyForm form;     private TempWhere bean;     /**直接由默认查询语句构造 */     public SearchCompany(){                sql = new StringBuffer("select companyId from SysCompany");     }     /**      * 由指定查询语句查询      * @param hql      */     public SearchCompany(String hql){         sql = new StringBuffer(hql);     }     /**      * 由formBean构造查询语句及参数实体      * @param form      */     public SearchCompany(ActionForm form){         sql = new StringBuffer("");         sql.append("select c.companyId from Company as c left join fetch c.companyProps as p left join fetch c.contactInfo as ct ");         this.form = (SearchCompanyForm)form;         condition();     }     /**调用父类的带参查询返回结果*/     public Object[] getList(){         if(sql==null)    return null;         if(bean==null)             return getIDList(sql.toString());         else             return getIDList(sql.toString(), bean);     }     /**      * 条件查询(条件语句及参数实体在此设定)      */     protected void condition(){         bean = new TempWhere();         sql.append(" WHERE p.lockedFlag=0 ");         if(!form.getCompanyName().equals("")){             sql.append(" AND c.companyName=:companyName");             bean.setCompanyName(form.getCompanyName());         }                    if (!form.getLinkTel().equals("")){             sql.append(" AND ct.linkTel=:linkTel");             bean.setLinkTel(form.getLinkTel());         }         if (!form.getLinkFax().equals("")){             sql.append(" AND ct.linkFax=:linkFax");             bean.setLinkFax(form.getLinkFax());         }         if (!form.getLinkEmail().equals("")){             sql.append(" AND ct.linkEmail=:linkEmail");             bean.setLinkEmail(form.getLinkEmail());         }         if (!form.getLinkman().equals("")){             sql.append(" AND ct.linkman=:linkman");             bean.setLinkman(form.getLinkman());         }         if (!form.getRepute().equals("")){             sql.append(" AND p.repute=:repute");             bean.setRepute(Short.parseShort(form.getRepute()));         }         if (!form.getSpecification().equals("")){             sql.append(" AND p.specification=:specification");             bean.setSpecification(Short.parseShort(form.getSpecification()));         }         if (!form.getVipFlag().equals("")){             sql.append(" AND p.vipflag=:vipFlag");             bean.setVipFlag(Short.parseShort(form.getVipFlag()));         }         if (!form.getDistrict().equals("")){             sql.append(" AND p.district=:district");             bean.setDistrict(Short.parseShort(form.getDistrict()));         }         if (!form.getFealty().equals("")){             sql.append(" AND p.fealty=:fealty");             bean.setFealty(Short.parseShort(form.getFealty()));         }         if (!form.getSourceFlag().equals("")){             sql.append(" AND p.sourceFlag=:sourceFlag");             bean.setSourceFlag(Short.parseShort(form.getSourceFlag()));         }         if (!form.getCompanyProps().equals("")){             sql.append(" AND c.companyProps_1=:companyProps");             bean.setCompanyProps(Short.parseShort(form.getCompanyProps()));         }         if (!form.getCalling().equals("")){             sql.append(" AND p.calling=:calling");             bean.setCalling(Short.parseShort(form.getCalling()));         }     }         class TempWhere{         /** companyProps property */         private short companyProps;         /** linkman property */         private String linkman;         /** fealty property */         private short fealty;         /** comapnyName property */         private String companyName;         /** district property */         private short district;         /** lockedFlag property */         private byte lockedFlag;         /** linkFax property */         private String linkFax;         /** specification property */         private short specification;         /** linkEmail property */         private String linkEmail;         /** sourceFlag property */         private short sourceFlag;         /** linkTel property */         private String linkTel;         /** repute property */         private short repute;         /** calling property */         private short calling;         /** vipFlag property */         private short vipFlag;         public TempWhere() {             super();             // TODO 自动生成构造函数存根         }         public TempWhere(short companyProps, String linkman, short fealty, String companyName, short district, byte lockedFlag, String linkFax, short specification, String linkEmail, short sourceFlag, String linkTel, short repute, short calling, short vipFlag) {             super();             // TODO 自动生成构造函数存根             this.companyProps = companyProps;             this.linkman = linkman;             this.fealty = fealty;             this.companyName = companyName;             this.district = district;             this.lockedFlag = lockedFlag;             this.linkFax = linkFax;             this.specification = specification;             this.linkEmail = linkEmail;             this.sourceFlag = sourceFlag;             this.linkTel = linkTel;             this.repute = repute;             this.calling = calling;             this.vipFlag = vipFlag;         }         public short getCalling() {             return calling;         }         public void setCalling(short calling) {             this.calling = calling;         }         public String getCompanyName() {             return companyName;         }         public void setCompanyName(String companyName) {             this.companyName = companyName;         }         public short getCompanyProps() {             return companyProps;         }         public void setCompanyProps(short companyProps) {             this.companyProps = companyProps;         }         public short getDistrict() {             return district;         }         public void setDistrict(short district) {             this.district = district;         }         public short getFealty() {             return fealty;         }         public void setFealty(short fealty) {             this.fealty = fealty;         }         public String getLinkEmail() {             return linkEmail;         }         public void setLinkEmail(String linkEmail) {             this.linkEmail = linkEmail;         }         public String getLinkFax() {             return linkFax;         }         public void setLinkFax(String linkFax) {             this.linkFax = linkFax;         }         public String getLinkman() {             return linkman;         }         public void setLinkman(String linkman) {             this.linkman = linkman;         }         public String getLinkTel() {             return linkTel;         }         public void setLinkTel(String linkTel) {             this.linkTel = linkTel;         }         public byte getLockedFlag() {             return lockedFlag;         }         public void setLockedFlag(byte lockedFlag) {             this.lockedFlag = lockedFlag;         }         public short getRepute() {             return repute;         }         public void setRepute(short repute) {             this.repute = repute;         }         public short getSourceFlag() {             return sourceFlag;         }         public void setSourceFlag(short sourceFlag) {             this.sourceFlag = sourceFlag;         }         public short getSpecification() {             return specification;         }         public void setSpecification(short specification) {             this.specification = specification;         }         public short getVipFlag() {             return vipFlag;         }         public void setVipFlag(short vipFlag) {             this.vipFlag = vipFlag;         }     } } /*****************************BaseComSearch类******************************/ package com.nyhr.struts.search; import com.nyhr.struts.frame.AbstractList; import com.nyhr.struts.page.Page; import org.apache.struts.action.ActionForm; public class BaseComSearch extends AbstractList {     /**预查询分页,由默认HQL构造初始化查询*/     public BaseComSearch(){         super(new SearchCompany());            }     /**预查询分页,由指定HQL构造初始化查询*/     public BaseComSearch(String hql){         super(new SearchCompany(hql));            }     /**      * 预查询分页,由ActionForm构造初始化查询      * @param form formBean      */     public BaseComSearch(ActionForm form){         super(new SearchCompany(form));     }     /**      * 查询分页(分页查询)      * @param idList      * @param page      */     public BaseComSearch(Object[] idList,Page page){         super(page, idList);     }     @Override     public String getHql(){         return "from SysCompany sc where sc.companyId in (:idList)";     }    } BaseComSearch类是对外的入口,Action调用的代码如下(加粗部分就是调用的指令): /*****************************预查询分页调用******************************/     public ActionForward execute(         ActionMapping mapping,         ActionForm form,         HttpServletRequest request,         HttpServletResponse response) {         SearchCompanyForm searchCompanyForm = (SearchCompanyForm) form;         // TODO Auto-generated method stub         BaseComSearch com = new BaseComSearch(searchCompanyForm);         Result result = com.getResult();         String idList = com.getIdList();         List list = result.getContent();         Page page = result.getPage();         request.setAttribute("idList",idList);         request.setAttribute("list",list);         request.setAttribute("page",page);         request.setAttribute("search",searchCompanyForm);         //return null;         return mapping.findForward("search");     }/*****************************查询分页调用******************************/     public ActionForward execute(         ActionMapping mapping,         ActionForm form,         HttpServletRequest request,         HttpServletResponse response) {         // TODO Auto-generated method stub         int totalRecords = Integer.parseInt(request.getParameter("totalRecords"));         int everyPage = Integer.parseInt(request.getParameter("everyPage"));         int currentPage = Integer.parseInt(request.getParameter("currentPage"));         Page page = PageUtil.createPage(everyPage,currentPage,totalRecords);         System.out.println("totalRecords:"+totalRecords+" everyPage:"+everyPage+" currentPage:"+currentPage);                 Result result;         String forward;         String idList = request.getParameter("idList");         if(idList ==null || idList.equals("")){             result = new BaseComSearch().getResult();             request.setAttribute("idList","");             forward="page";         }else{             Object[] idLists = StringUtil.stringToArray(idList,"[^//d]+|,");             System.out.println(idLists[2]);             result = new BaseComSearch(idLists,page).getResult();             request.setAttribute("idList",idList);             forward="pages";         }         List list = result.getContent();                 request.setAttribute("page",page);         request.setAttribute("list",list);         return mapping.findForward(forward);     } 本代码实例到此全部完成,希望能对还摸索着分页查询的朋友有所帮助,如果您有更好的代码实例,也请一起拿来分享,对本分页代码有好的建议,不妨写下留言,谢谢! 特别声明:转载请保留版权及代码的完整性。

    最新回复(0)