关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法
2016-07-08 08:49
405 查看
2013-03-02 13:20 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方法的返回值。
版权声明:本文为博主原创文章,未经博主允许不得转载。
这两个方法都是为了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方法的返回值。
相关文章推荐
- 异常错误处理
- nodejs中的async模块学习
- 将IDL项目创建在现存的pro文件的文件夹内
- 让您的Xcode键字如飞
- Makefile 编写 简易教程 (实例)
- myeclipse8.5 启动时不弹出工作空间的选择,直接进入一个空的工作空间
- Criteria 和 DetachedCriteria的区别与使用
- myeclipse8.5 启动时不弹出工作空间的选择,直接进入一个空的工作空间
- myeclipse8.5 启动时不弹出工作空间的选择,直接进入一个空的工作空间
- myeclipse8.5 启动时不弹出工作空间的选择,直接进入一个空的工作空间
- 把游标说透
- Linux下crontab命令的用法
- DOM之表格与表单基础分享
- 企业使用VMware vSphere进行服务器虚拟化的经验分享
- C++中的单子(最多只能有一个对象)
- C++中的单子(最多只能有一个对象)
- PL/SQL流程控制语句
- AndroidStudio运行模拟器--夜神
- 凸优化 - 1 - 直线和几何体的向量表达
- [Cloud Computing]Mechanisms: Cryptographic Key Management System