dao的封装及简单封装

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;

/***
* BaseDao 继承至HibernateDaoSuport类;
* @author wangxiuwei
*
*/
public class BaseDao extends HibernateDaoSupport {
/***
* 添加方法;
*/
public void add(Object obj){
super.getHibernateTemplate().save(obj);
}

/***
* 修改方法;
*/
public void update(Object obj){
super.getHibernateTemplate().update(obj);
}

/***
* 根据对象删除;
*/
public void deleteByObj(Object obj){
super.getHibernateTemplate().update(obj);
}

/***
* 根据主键删除;
* @param id
*/
public void deleteById(Class c,Serializable id){
this.deleteByObj(this.queryById(c, id));
}

/***
* 查询全部;
* @param c
* @return
*/
public List queryAll(Class c){
return super.getHibernateTemplate().find("from "+c.getName());
}

/***
* 按主键查询;
* @param c
* @return
*/
public Object queryById(Class c,Serializable id){
return super.getHibernateTemplate().load(c, id);
}

/***
* 按条件删除或者修改;
* @return
*/
public boolean updateOrDelete(String hql,Object...objects){
int result=super.getHibernateTemplate().bulkUpdate(hql, objects);
return result>0;
}

/***
* 保存或者更新;
* @param obj
*/
public void saveOrUpdate(Object obj){
super.getHibernateTemplate().saveOrUpdate(obj);
}

/***
[color=red]* 分页查询; [/color]
* @return
*/
public List queryPage(final String hql,final Integer page,final Integer size,final Object...objects){
return super.getHibernateTemplate().executeFind(new HibernateCallback(){

public Object doInHibernate(Session session)
throws HibernateException, SQLException {
// TODO Auto-generated method stub
Query query=session.createQuery(hql);
if(objects!=null){
for (int i=0;i<objects.length;i++) {
query.setParameter(i,objects[i]);
}
}
if(page!=null && size!=null){
query.setFirstResult((page-1)*size).setMaxResults(size);
}
return query.list();
}});
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值