package yxy.timer.dao.impl; import java.io.Serializable; import java.util.List; import org.hibernate.Query; import org.hibernate.Session; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import yxy.timer.dao.HibernateBaseDAO; public abstract class HibernateBaseDAOImpl<T extends Serializable ,Pk extends Serializable> extends HibernateDaoSupport implements HibernateBaseDAO<T, Pk> { //------------------------------常用CRUD操作----------------------------------------- /**增加记录 (返回新增加记录的主键)*/ public int add(T o) throws Exception { return (Integer) super.getHibernateTemplate().save(o); } /**增加记录(无返回�?)*/ public void adddate(T o) throws Exception { super.getHibernateTemplate().save(o); } /**修改记录*/ public void update(T o) throws Exception { super.getHibernateTemplate().update(o); } /**删除记录*/ public void del(T o) throws Exception { super.getHibernateTemplate().delete(o); } /**添加或更改*/ public void saveOrUpdate(T o) throws Exception { super.getHibernateTemplate().saveOrUpdate(o); } /**根据ID获取�?��数据*/ @SuppressWarnings("unchecked") public T get(Class<T> t,Pk pk) throws Exception { return (T) super.getHibernateTemplate().get(t, pk); } /**根据ID获取�?��数据*/ @SuppressWarnings("unchecked") public T load(Class<T> t,Pk pk) throws Exception { return (T) super.getHibernateTemplate().load(t, pk); } /**根据hql进行条件查询*/ @SuppressWarnings("unchecked") public List<T> getAll(String hql) throws Exception { return super.getHibernateTemplate().find(hql); } /**条件查询*/ @SuppressWarnings("unchecked") public List<T> getAll(String whereHql, Object... params) throws Exception { return super.getHibernateTemplate().find(whereHql,params); } /**根据条件和参数查询�?记录*/ public int count(String hql, Object... params) throws Exception { return Integer.valueOf(super.getHibernateTemplate().find(hql,params).get(0).toString()); } /**根据条件查询总记录*/ public int count(String hql) throws Exception { List result=super.getHibernateTemplate().find(hql); if(result.size()>0&&result.get(0)!=null&&!result.get(0).equals("null")){ return Integer.valueOf(result.get(0).toString()); }else{ return 0; } //return Integer.valueOf(super.getHibernateTemplate().find(hql).get(0).toString()); } /**批量插入*/ public void addPi(List<T> o)throws Exception{ Session session =null; if(o!=null){ session=super.getHibernateTemplate().getSessionFactory().openSession(); session.beginTransaction(); for(int i=0;i<o.size();i++){ session.saveOrUpdate(o.get(i)); if(i%10==0){ session.flush(); session.clear(); } } session.getTransaction().commit(); } session.close(); } /**Hql语句修改删除记录*/ public int updateorDelByHql(String hql){ Query query = null; int result=0; Session session =null; try { session=super.getHibernateTemplate().getSessionFactory().openSession(); query = session.createQuery(hql); result = query.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session!=null){ session.clear(); session.close(); } } return result; } /**查询设定的记录条数据*/ public List<T> findBySet(String hql,int num){ Session session = null; Query query=null; try { session=super.getHibernateTemplate().getSessionFactory().openSession(); query = session.createQuery(hql); query.setMaxResults(num); return query.list(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session!=null){ session.clear(); session.close(); } } return null; } /**sql语句查询*/ public List findBySql(String sql) throws Exception{ Session session=null; try { session =super.getHibernateTemplate().getSessionFactory(). openSession(); return session.createSQLQuery(sql).list(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session!=null){ session.clear(); session.close(); } } return null; } /**sql语句修改删除记录*/ public int updateorDelSql(String sql){ Query query = null; int result=0; Session session =null; try { session=super.getHibernateTemplate().getSessionFactory().openSession(); query = session.createSQLQuery(sql); result = query.executeUpdate(); } catch (Exception e) { e.printStackTrace(); }finally{ if(session!=null){ session.clear(); session.close(); } } return result; } }