关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法

  8357人阅读  评论(0)  收藏  举报
这两个方法都是为了Spring在接管Hibernate之后,可以对HibernateDaoSupport进行灵活的扩展而用的。


二者的主要区别在于,execute返回的是一个Object,而executeFind方法返回的是一个List.


//使用executeFind
protected void deleteByVehicleId(final int vehicleId) throws Exception {
 try {
 this.getHibernateTemplate().executeFind(
 new HibernateCallback() {
 public Object doInHibernate(Session session) throws HibernateException, SQLException {
 Query q = session.createQuery("delete from Vehicle v where v.id=" + vehicleId );
 q.executeUpdate();
 return null;
 }
 });
 } catch (Exception e) {
 throw e;
 }
}


//使用execute
public String updateScreen(final int screenId,final String configStr){
Object o = getHibernateTemplate().execute(new HibernateCallback() {

public Object doInHibernate(Session session) throws HibernateException, SQLException {
SQLQuery query = session.createSQLQuery("update HPS_ParkingLotScreen  set config_Str='" + configStr + "' where id=" +screenId);
try{
int ii = query.executeUpdate();
System.out.println(ii);
return "success";
}catch (Exception e) {
e.printStackTrace();
}
return "fail";
}
});
return o.toString();
}


另外,在new HibernateCallback的内部类的doInHibernate方法中,它的返回值,就是execute或executeFind方法的返回值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值