首页 > 代码库 > 编写hibernateDao,使dao层都实现hibernateDao

编写hibernateDao,使dao层都实现hibernateDao

 

package com.wiseweb.core.dao;import java.io.Serializable;import java.util.ArrayList;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;@SuppressWarnings("unchecked")public abstract class HibernateDAO <T, P extends Serializable> {    @Autowired    private SessionFactory sessionFactory;        /**     * 获取sessionFactory工厂     * @return     */    protected SessionFactory getSessionFactory(){                return this.sessionFactory;    }        /**     * 获取数据库session会话     * @return     */    protected Session getSession(){                return this.sessionFactory != null ? this.sessionFactory.getCurrentSession() : null;    }    /**     * 保存数据库     * @param object     * @throws Exception     */    public void save(T object) throws Exception{                if (getSession() != null) {            getSession().save(object);        }    }    /**     * 删除数据库     * @param object     * @throws Exception     */    public void delete(T object) throws Exception{                if (getSession() != null) {            getSession().delete(object);        }    }    /**     * 更新数据库     * @param object     * @throws Exception     */    public void update(T object) throws Exception{                if (getSession() != null) {            getSession().update(object);        }    }    /**     * 根据id查询     * @param tClass     * @param id     * @return     * @throws Exception     */    public T get(Class<T> tClass, P id) throws Exception{                if (getSession() != null) {            return (T) getSession().get(tClass, id);        }        return null;    }    /**     * 根据sql语句做相应的查询     * @param hql     * @return     * @throws Exception     */    public List<T> createQueryByHql(String hql) throws Exception{                List<T> list = new ArrayList<T>();        if (hql != null || !hql.equals("")) {            if (getSession() != null) {                list = getSession().createQuery(hql).list();            }        }        return list;    }    /**     * 分页查询     * @param hql     * @param pageNum     * @param pageSize     * @return     * @throws Exception     */    public List<T> createQueryByHql(String hql, int pageNum, int pageSize) throws Exception{                List<T> list = new ArrayList<T>();        if (hql != null || !hql.equals("")) {            if (getSession() != null) {                Query query = getSession().createQuery(hql);                query.setFirstResult((pageNum - 1) * pageSize);                query.setMaxResults(pageSize);                list = query.list();            }        }        return list;    }}

 

编写hibernateDao,使dao层都实现hibernateDao