ssh中getHibernateTemplate()的方法


spring接着又把業務類中的查詢也封裝成了find()

      //用來實現分頁
          /*HibernateTemplate ht=this.getHibernateTemplate();
          DetachedCriteria criteria=DetachedCriteria.forClass(Paper.class);
          ht.findByCriteria(criteria, firstResult, maxResults);*/
        this.getHibernateTemplate().findByCriteria(criteria, firstResult, maxResults)
        //比較局限。User中幾個有值就查詢幾個(主鍵和外鍵是無法的)條件的拼接只能是等於like
        //常用登錄查詢
        this.getHibernateTemplate().findByExample(User);
        //刪除一個數組
        this.getHibernateTemplate().deleteAll(new ArrayList());
        //命名查詢
        this.getHibernateTemplate().findByNamedQuery("name of the hql");
        //第一個數組是變量名的數組,第二個是變量值的數組(冒號的命名查詢)
        this.getHibernateTemplate().findByNamedParam("from :name", new Object[], new String[]);
        //立即清理緩存,立刻執行
        this.getHibernateTemplate().flush();
        //按照主鍵查詢
        this.getHibernateTemplate().get(entityClass, id);//load
        //增刪改
        this.getHibernateTemplate().bulkUpdate("hql ?",1,"abc",new Date());

模板和回調

  1、模板雖好,但有得有失

    a、有時候我們需要更加靈活

  2、spring提供了回調機制

    a、模板固話了不變得、流程化的內容,簡化使用

    b、回調允許我們在固化的流程中加入變化的內容

public List<ClaimVoucher> find(final int first, final int pageSize) {
        //模板和回調-->回調就是為了解決模板中不能實現的
        return this.getHibernateTemplate().executeFind(new HibernateCallback() {

            @Override
            public List doInHibernate(Session arg0)
                    throws HibernateException, SQLException {
                // TODO Auto-generated method stub
                return arg0.createQuery(" from ClaimVoucher c")
                .setFirstResult((first-1)*pageSize)
                .setMaxResults(pageSize)
                .list();
            }
        });

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM