zoukankan      html  css  js  c++  java
  • 关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法

    转自:https://blog.csdn.net/angus_17/article/details/8501668

    1.

    这两个方法都是为了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方法的返回值。

  • 相关阅读:
    C primer plus 摘抄(第三章 数据和C)
    lambda表达式+python内置函数
    补充(pass)
    If语句和while语句
    解释器和编译器的区别
    关于python编码
    初识Python
    unity学习(一)ide窗口
    unity学习
    redis实践 —— redisReply简析
  • 原文地址:https://www.cnblogs.com/sharpest/p/7295649.html
Copyright © 2011-2022 走看看