严格按照三层架构来写的,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;
}
}