严格按照三层架构来写的,Dao层的代码比较少,我直接把Emp和实现类的都放在这篇文章里面吧,
IEmpDao.java接口:
/** * @Title: IEmpDao.java * @Package org.dao * @Description: TODO该方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-4-19 下午6:36:43 * @version V1.0 */ package org.dao; import org.entity.Emp; import org.entity.EmpCondition; import org.util.pageUtil; /** * * 项目名称:struts_easyui * 类名称:IEmpDao * 类描述: 员工的接口 * 创建人:Mu Xiongxiong * 创建时间:2017-4-19 下午6:36:43 * 修改人:Mu Xiongxiong * 修改时间:2017-4-19 下午6:36:43 * 修改备注: * @version * */ public interface IEmpDao { //动态分页查询(根据部门编号,员工的名) //获取记录数 //获取员工信息方法 pageUtil<Emp> getEmpByPage(int pageIndex,int pageSize,EmpCondition empc); }
IEmpDao的实现类——EmpDaoImpl
/** * @Title: EmpDaoImpl.java * @Package org.dao.impl * @Description: TODO该方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-4-19 下午7:15:46 * @version V1.0 */ package org.dao.impl; import org.dao.IEmpDao; import org.entity.Emp; import org.entity.EmpCondition; import org.hibernate.Criteria; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Projection; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import org.hibernate.impl.CriteriaImpl; import org.util.HibernateUtil; import org.util.pageUtil; /** * * 项目名称:struts_easyui * 类名称:EmpDaoImpl * 类描述: * 创建人:Mu Xiongxiong * 创建时间:2017-4-19 下午7:15:46 * 修改人:Mu Xiongxiong * 修改时间:2017-4-19 下午7:15:46 * 修改备注: * @version * */ public class EmpDaoImpl implements IEmpDao { /**(非 Javadoc) * <p>Title: getEmpByPage</p> * <p>Description(描述): </p> * @param pageIndex * @param pageSize * @param empc * @return * @see org.dao.IEmpDao#getEmpByPage(int, int, org.entity.EmpCondition) */ @Override public pageUtil<Emp> getEmpByPage(int pageIndex, int pageSize, EmpCondition empc) { pageUtil<Emp> pageUtil=new pageUtil<Emp>(); Criteria cri = HibernateUtil.getSession().createCriteria(Emp.class); if(empc.getDept()!=null){ cri.add(Restrictions.eq("dept",empc.getDept())); //按部门编号比较 } if(empc.getEmpName()!=null){ //根据名字模糊查询 cri.add(Restrictions.ilike("ename", empc.getEmpName(),MatchMode.ANYWHERE)); } pageUtil.setPageIndex(pageIndex); pageUtil.setPageSize(pageSize); CriteriaImpl cirImp= (CriteriaImpl) cri; Projection pro= cirImp.getProjection();//保存投影 //查询总记录数 cri.setProjection(Projections.rowCount()); pageUtil.setTotalCount((Integer)cri.uniqueResult()); //员工信息 cri.setProjection(pro); //分页设置 cri.setFirstResult((pageIndex-1)*pageSize); cri.setMaxResults(pageSize); pageUtil.setList(cri.list()); return pageUtil; } }