Codooba
          JCenter
          posts - 20,comments - 9,trackbacks - 0

          HibernateTemplate提供非常多的常用方法來完成基本的操作,比如通常的增加、刪除、修改、查詢等操作,Spring 2.0更增加對命名SQL查詢的支持,也增加對分頁的支持。大部分情況下,使用Hibernate的常規(guī)用法,就可完成大多數(shù)DAO對象的CRUD操作。下面是HibernateTemplate的常用方法簡介:

          q      void delete(Object entity):刪除指定持久化實(shí)例

          q      deleteAll(Collection entities):刪除集合內(nèi)全部持久化類實(shí)例

          q      find(String queryString):根據(jù)HQL查詢字符串來返回實(shí)例集合

          q      findByNamedQuery(String queryName):根據(jù)命名查詢返回實(shí)例集合

          q      get(Class entityClass, Serializable id):根據(jù)主鍵加載特定持久化類的實(shí)例

          q      save(Object entity):保存新的實(shí)例

          q      saveOrUpdate(Object entity):根據(jù)實(shí)例狀態(tài),選擇保存或者更新

          q      update(Object entity):更新實(shí)例的狀態(tài),要求entity是持久狀態(tài)

          q      setMaxResults(int maxResults):設(shè)置分頁的大小

          下面是一個完整DAO類的源代碼:

          public class PersonDAOHibernate implements PersonDAO

          {

              //采用log4j來完成調(diào)試時的日志功能

          private static Log log = LogFactory.getLog(NewsDAOHibernate.class);

              //以私有的成員變量來保存SessionFactory

          private SessionFactory sessionFactory;

          //以私有變量的方式保存HibernateTemplate

          private HibernateTemplate hibernateTemplate = null;

                   //設(shè)值注入SessionFactory必需的setter方法

              public void setSessionFactory(SessionFactory sessionFactory)

          {

                     this.sessionFactory = sessionFactory;

              }

                   //初始化本DAO所需的HibernateTemplate

          public HIbernateTemplate getHibernateTemplate()

          {

                   //首先,檢查原來的hibernateTemplate實(shí)例是否還存在

                   if ( hibernateTemplate == null)

                   {

                             //如果不存在,新建一個HibernateTemplate實(shí)例

                             hibernateTemplate = new HibernateTemplate(sessionFactory);

                   }

                   return hibernateTemplate;

          }

                   //返回全部的人的實(shí)例

              public List getPersons()

                   {       

                             //通過HibernateTemplatefind方法返回Person的全部實(shí)例

                     return getHibernateTemplate().find("from Person");

              }

                   /**

                    * 根據(jù)主鍵返回特定實(shí)例

                    * @ return 特定主鍵對應(yīng)的Person實(shí)例

                    * @ param 主鍵值

              public News getNews(int personid)

                   {

                     return (Person)getHibernateTemplate().get(Person.class, new Integer(personid));

              }

                   /**

                    * @ person 需要保存的Person實(shí)例

                    */

              public void savePerson(Person person)

                   {                

                             getHibernateTemplate().saveOrUpdate(person);

              }

                   /**

                    * @ param personid 需要刪除Person實(shí)例的主鍵

                    * /

              public void removePerson(int personid)

                   {

                             //先加載特定實(shí)例

                     Object p = getHibernateTemplate().load(Person.class, new Integer(personid));

                             //刪除特定實(shí)例

                     getHibernateTemplate().delete(p);

              }

          }

          posted on 2007-10-25 23:08 Zhangwenlong 閱讀(1004) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 武胜县| 华池县| 股票| 牡丹江市| 黄大仙区| 天等县| 房山区| 肥西县| 含山县| 文登市| 台江县| 盐亭县| 潞城市| 卢龙县| 城步| 云南省| 得荣县| 惠州市| 肥城市| 南京市| 贵南县| 贵德县| 莱西市| 吉林省| 岑巩县| 昔阳县| 双柏县| 运城市| 英德市| 武义县| 洪湖市| 旬邑县| 尚义县| 南城县| 贵阳市| 遵义县| 曲靖市| 沙雅县| 山东| 桐乡市| 甘南县|