package com.comm;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class BaseDao extends HibernateDaoSupport {
//添加
public void Add(Object object){
super.getHibernateTemplate().save(object);
}
//根据主键查找
public Object findById(Class c,Serializable id){
return super.getHibernateTemplate().load(c, id) ;
}
//修改某个对象
public void Update(Object object){
super.getHibernateTemplate().update(object);
}
//根据主键删除
public void DelById(Class c,Serializable id){
super.getHibernateTemplate().delete(findById(c, id));;
}
//根据对象删除
public void del(Object object){
super.getHibernateTemplate().delete(object);
}
//查找所有对象
public List getAll(Class c){
String hql="from "+c.getName();
return super.getHibernateTemplate().find(hql);
}
//分页
public List pages(final String hql,final Integer page,final Integer size,final Object...p){
return super.getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery(hql);
//处理参数
if (p!=null)
for (int i=0;i<p.length;i++)
query.setParameter(i, p[i]);
//处理分页
if (page!=null && size!=null)
query.setFirstResult((page-1)*size).setMaxResults(size);
return query.list();
}
});
}
//批处理 删除,修改
public void UpdateOrDelete(String hql,Object...p){
super.getHibernateTemplate().bulkUpdate(hql,p);
// super.getSession().createSQLQuery("");
}
}