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

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

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

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

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

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

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

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

          q      saveOrUpdate(Object entity):根據實例狀態,選擇保存或者更新

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

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

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

          public class PersonDAOHibernate implements PersonDAO

          {

              //采用log4j來完成調試時的日志功能

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

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

          private SessionFactory sessionFactory;

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

          private HibernateTemplate hibernateTemplate = null;

                   //設值注入SessionFactory必需的setter方法

              public void setSessionFactory(SessionFactory sessionFactory)

          {

                     this.sessionFactory = sessionFactory;

              }

                   //初始化本DAO所需的HibernateTemplate

          public HIbernateTemplate getHibernateTemplate()

          {

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

                   if ( hibernateTemplate == null)

                   {

                             //如果不存在,新建一個HibernateTemplate實例

                             hibernateTemplate = new HibernateTemplate(sessionFactory);

                   }

                   return hibernateTemplate;

          }

                   //返回全部的人的實例

              public List getPersons()

                   {       

                             //通過HibernateTemplatefind方法返回Person的全部實例

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

              }

                   /**

                    * 根據主鍵返回特定實例

                    * @ return 特定主鍵對應的Person實例

                    * @ param 主鍵值

              public News getNews(int personid)

                   {

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

              }

                   /**

                    * @ person 需要保存的Person實例

                    */

              public void savePerson(Person person)

                   {                

                             getHibernateTemplate().saveOrUpdate(person);

              }

                   /**

                    * @ param personid 需要刪除Person實例的主鍵

                    * /

              public void removePerson(int personid)

                   {

                             //先加載特定實例

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

                             //刪除特定實例

                     getHibernateTemplate().delete(p);

              }

          }

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

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


          網站導航:
           
          主站蜘蛛池模板: 红桥区| 邹城市| 宽甸| 土默特左旗| 德昌县| 福贡县| 奇台县| 淳安县| 兰溪市| 西华县| 海城市| 张家港市| 宜兴市| 哈密市| 丹巴县| 富阳市| 股票| 靖边县| 舞钢市| 军事| 钟祥市| 尼勒克县| 云浮市| 五峰| 锦州市| 上蔡县| 张掖市| 西丰县| 广南县| 高邑县| 徐州市| 宜兴市| 乐平市| 安义县| 赤壁市| 汝阳县| 泰宁县| 翼城县| 张家口市| 大庆市| 昔阳县|