关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法
2013-03-02 13:20
330 查看
这两个方法都是为了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方法的返回值。
二者的主要区别在于,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方法的返回值。
相关文章推荐
- 关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法
- HibernateDaoSupport的getHibernateTemplate.find()方法带参查询返回结果是nul问题解决
- HibernateDaoSupport的getHibernateTemplate()的find方法大全
- HibernateDaoSupport的getHibernateTemplate()的find方法大全
- getHibernateTemplate().execute(new HibernateCallback())方法的优点
- <?>关于spring里HibernateDaoSupport的关于session的获取方法
- getHibernateTemplate().execute(new HibernateCallback())方法
- 关于HibernateDaoSupport getSession()不能释放资源的问题及解决方法
- 解决继承HibernateDaoSupport用getHibernateTemplate()无法更新的问题
- getHibernateTemplate().execute(new HibernateCallback())方法
- 【引用】getHibernateTemplate().execute(new HibernateCallback())方法
- getHibernateTemplate().execute(new HibernateCallback())方法
- getHibernateTemplate().execute(new HibernateCallback())方法
- DAO中调用getHibernateTemplate()方法时就是报空指向异常
- getHibernateTemplate().execute(new HibernateCallback())方法
- getHibernateTemplate().execute(new HibernateCallback())方法
- 【Hibernate】dao层 +getHibernateTemplate()方法解析
- getHibernateTemplate().execute(new HibernateCallback())方法
- 关于使用super.getHibernateTemplate()中的方法报java.lang.NullPointerException的解决办法
- getHibernateTemplate().execute(new HibernateCallback())方法