ssh2 DAO接口再抽象
GenericDao.java
?
/** Hibernate对通用的Dao接口的实现 */public class GenericHibernateDaoImpl<T,ID extends Serializable> implements GenericDao<T,ID> {private Class<T> clazz;@SuppressWarnings("unchecked")public GenericHibernateDaoImpl() {//通过反射获取T的类型信息实例this.clazz = (Class<T>)((ParameterizedType)this.getClass().getGenericSuperclass()) .getActualTypeArguments()[0];}public void create(T entity) { //create方法的实现HibernateUtil.getSession().save(entity);}public void delete(T entity) { //delete方法的实现HibernateUtil.getSession().delete(entity);}@SuppressWarnings("unchecked")public void update(T entity) { //update方法的实现//HibernateUtil.getSession().saveOrUpdate(entity);entity = (T) HibernateUtil.getSession().merge(entity);}@SuppressWarnings("unchecked")public T findById(ID id) { //findById方法的实现return (T)HibernateUtil.getSession().load(clazz, id); //get}@SuppressWarnings("unchecked")public List<T> findAll() { //findAll方法的实现return HibernateUtil.getSession().createCriteria(clazz).list();}@SuppressWarnings("unchecked")public List<T> findList(int pageNo, int pageSize) { //分页查询return HibernateUtil.getSession().createCriteria(clazz) .setFirstResult((pageNo - 1) * pageSize) .setMaxResults(pageSize) .list();}public int getTotal() { //获取总记录数Integer count = (Integer) HibernateUtil.getSession() .createCriteria(clazz).setProjection(Projections.rowCount()).uniqueResult();if (null == count) {return 0;} else {return count.intValue();}}}?参考文章:http://tech.it168.com/j/2007-12-27/200712271701173_1.shtml