/** * PageDaoImpl.java * edu.sjtu.infosec.ismp.manager.resp.dao.impl * * Function: TODO * * ver date author * ────────────────────────────────── * 2009-6-30 xpeiyuan * * Copyright (c) 2009, TNT All Rights Reserved. */ package edu.sjtu.infosec.ismp.manager.ERM.dao.impl; /** * ClassName:PageDaoImpl * Function: TODO ADD FUNCTION * Reason: TODO ADD REASON * * @author lisiwen * @version * @since Ver 1.1 * @Date 2010-5-21 下午02:00:06 * * @see * @deprecated */ import java.sql.SQLException; import java.util.List; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.criterion.Expression; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import edu.sjtu.infosec.ismp.manager.ERM.dao.PageDao; import edu.sjtu.infosec.ismp.manager.ERM.model.RespInfoBO; //import edu.sjtu.infosec.ismp.manager.ERM.web.form.RespIndexForm; import edu.sjtu.infosec.ismp.manager.comm.model.page.Page; //import com.sy.dao.BaseDao; @SuppressWarnings({ "unchecked", "deprecation" }) public class PageDaoImpl extends HibernateDaoSupport implements PageDao { private String hql; private Page page; private int start; // public BaseDao dao; // public void setDao(BaseDao dao) { // this.dao = dao; // } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#init(int, java.lang.String) */ public void init(int start,String tableName){ // page = new Page(); this.hql = "from "+tableName+" Order by id desc"; this.start = start; setRowCount(); setTotalPage(); setCurrentPage(); setPrePage(); setNextPage(); setPreOrNextBoolean(); } public void initPage(int pno, String userToManager) { page = new Page(); this.start = pno; this.setRowCountnum(userToManager); //得到总行数 this.setTotalPageNum(userToManager); //得到总页数 System.out.println("总页数:"+page.getTotalPage()); System.out.println(page); setCurrentPage(); //当前页 setPrePage(); //是否有上一页 setNextPage(); setPreOrNextBoolean(); } public int getRowCountnum(String userToManager) { // String[] userToManagers=userToManager.split(","); // StringBuilder sb=new StringBuilder(); // Query query; // int num=0; // List selectList=null; //查询集合 // for(String a:userToManagers) // { // num=Integer.parseInt(a); // query = this.getSession().createQuery("select managerName from ManagerBO as m where m.id=:id"); // query.setInteger("id", num); // selectList=query.list(); // if(!selectList.isEmpty() && selectList.size()>0) // { // sb.append("'"+selectList.get(0)+"',"); // } // } // int a=0; // if(sb.toString().length()>0) // { // String sbString=sb.toString().substring(0, sb.length()-1); // String bql="from RespinfoBO as m where m.department in"; // query=this.getSession().createQuery(bql+"("+sbString+")"); // System.out.println(query.list().size()); // a=query.list().size(); // } // // return a; return 0; } //设置总页数 public void setTotalPageNum(String userToManager) { int rowCount = this.getRowCountnum(userToManager); //总行数 int pageSize = page.getEveryPage(); //每行显示的页数 if (rowCount > pageSize) { if (rowCount % pageSize == 0) { page.setTotalPage(rowCount / pageSize); } else { page.setTotalPage(1 + (rowCount / pageSize)); } } else { page.setTotalPage(1); } } public void setRowCountnum(String userToManager) { page.setTotalCount(getRowCountnum(userToManager)); } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#getRowCount() */ public int getRowCount(){ int count=0; try { // this.getShowPage(userToManager); List list = getHibernateTemplate().find(hql); if(list.isEmpty()){ return 0; } count = list.size(); } catch (Exception e) { // TODO: handle exception } return count; } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#setPreOrNextBoolean() */ public void setPreOrNextBoolean() { if (page.getCurrentPage() <= 1) { page.setHasPrePage(false); } else { page.setHasPrePage(true); } if (page.getCurrentPage() >= page.getTotalPage()) { page.setHasNextPage(false); } else { page.setHasNextPage(true); } } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#setCurrentPage() */ public void setCurrentPage() { if (start < 1) { page.setCurrentPage(1); } if (start > page.getTotalPage()) { page.setCurrentPage(page.getTotalPage()); } page.setCurrentPage(start); } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#setPrePage() */ public void setPrePage() { page.setPrePage(page.getCurrentPage() - 1); } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#setNextPage() */ public void setNextPage() { page.setNextPage(page.getCurrentPage() + 1); } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#setTotalPage() * 设置总页数 */ public void setTotalPage() { int rowCount = getRowCount(); //总行数 int pageSize = page.getEveryPage(); //每行显示的页数 if (rowCount > pageSize) { if (rowCount % pageSize == 0) { page.setTotalPage(rowCount / pageSize); } else { page.setTotalPage(1 + (rowCount / pageSize)); } } else { page.setTotalPage(1); } } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#setRowCount() */ public void setRowCount() { page.setEveryPage(getRowCount()); } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#getStartIndex() */ public int getStartIndex() { int startIndex = 0; if (start < 0) { startIndex = 0; } else { if (start > page.getTotalPage()) { startIndex = page.getEveryPage() * (page.getTotalPage() - 1); } else { startIndex = page.getEveryPage() * (start - 1); } } return startIndex; } // public List getShowPage(String s,RespIndexForm respform) { // Criteria criteria=this.getSession().createCriteria(RespInfoBO.class); // if(null!=respform.getRespunits() && !"".equals(respform.getRespunits())) // { //// System.out.println("respform.getRespunits()"+respform.getRespunits()); // criteria.add(Expression.eq("department", respform.getRespunits())); // } // if(null!=respform.getRespname() && !"".equals(respform.getRespname())) // { //// System.out.println("respform.getRespname()"+respform.getRespname()); // criteria.add(Expression.eq("projname", respform.getRespname())); // } // if(null!=respform.getThissystem() && !"".equals(respform.getThissystem())) // { //// System.out.println("respform.getThissystem()"+respform.getThissystem()); // criteria.add(Expression.eq("itsysname", respform.getThissystem())); // } // if(null!=respform.getUpdatetime() && !"".equals(respform.getUpdatetime())) // { //// System.out.println("respform.getUpdatetime()"+respform.getUpdatetime()); // criteria.add(Expression.like("modidate", "%"+respform.getUpdatetime()+"%")); // } //// System.out.println("selest===="+select); // System.out.println("传过来的委办局======"+s); // criteria.add(Expression.in("department", s.split(","))); // criteria.setFirstResult(getStartIndex()); // criteria.setMaxResults(page.getEveryPage()); //// System.out.println("查询的总集合是:"+criteria.list().size()); //// page.setList(criteria.list()); //// return page; // return criteria.list(); // } /** * (non-Javadoc) * @see edu.sjtu.infosec.ismp.manager.resp.dao.PageDao#getPage() */ public Page getPage(){ List list = (List)getHibernateTemplate().execute(new HibernateCallback(){ public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hql); query.setFirstResult(getStartIndex()); query.setMaxResults(page.getEveryPage()); return query.list(); } }); page.setList(list); return page; } public String getDepaetmentNames(String id) { StringBuffer sb=new StringBuffer(); int num=0; Query query; String[] arrid=id.split(","); for(String a : arrid) { num=Integer.parseInt(a); query = this.getSession().createQuery("select managerName from ManagerBO as m where m.id=:id"); query.setInteger("id", num); if(!query.list().isEmpty() && query.list().size()>0) { sb.append(query.list().get(0)+","); } } if(sb.length()==0) { return "noDepartment"; } return sb.toString().substring(0,sb.toString().length()-1); } }