標籤:style blog io color ar sp java 資料 div
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