日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

getHibernateTemplate()与getSession()的区别

發(fā)布時間:2025/6/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 getHibernateTemplate()与getSession()的区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.

getHibernateTemplate已經(jīng)封裝好了一些基本的方法,可以直接去用

而getSession只是獲取一個數(shù)據(jù)工廠的session,然后大部分方法都需要自己寫,加hql語句,然后用query方法執(zhí)行

?

2.

HibernateTemplate 提供非常多的常用方法來完成基本的操作,比如通常的增加、刪除、修改、查詢等操作,Spring 2.0更增加對命名SQL查詢的支持,也增加對分頁的支持。大部分情況下,使用Hibernate的常規(guī)用法,就可完成大多數(shù)DAO對象的CRUD操作。 下面是HibernateTemplate的常用方法簡介:?
q void delete(Object entity):刪除指定持久化實例?
q deleteAll(Collection entities):刪除集合內(nèi)全部持久化類實例?
q find(String queryString):根據(jù)HQL查詢字符串來返回實例集合?
q findByNamedQuery(String queryName):根據(jù)命名查詢返回實例集合?
q get(Class entityClass, Serializable id):根據(jù)主鍵加載特定持久化類的實例?
q save(Object entity):保存新的實例?
q saveOrUpdate(Object entity):根據(jù)實例狀態(tài),選擇保存或者更新?
q update(Object entity):更新實例的狀態(tài),要求entity是持久狀態(tài)?
q setMaxResults(int maxResults):設(shè)置分頁的大小

例如如下代碼:

[java] view plaincopy
  • getHibernateTemplate().find():??
  • List?list?=?getHibernateTemplate().find(String?sql?):??
  • </span>??
  • 這種的前提是sql必須是hql ,原始sql 不能執(zhí)行。?
    ?

    3.

    使用getSession()方法你只要繼承 sessionFactory,而使用getHibernateTemplate()方法必須繼承HibernateDaoSupport當(dāng)然包括 sessionFactory

    getSession()方法是沒有經(jīng)過spring包裝 的,spring會把最原始的session給你,在使用完之后必須自己調(diào)用相應(yīng)的close方法,而且也不會對聲明式事務(wù)進行相應(yīng)的管理,一旦沒有及時 關(guān)閉連接,就會導(dǎo)致數(shù)據(jù)庫連接池的連接數(shù)溢出,getHibernateTemplate()方法是經(jīng)過spring封裝的,例如添加相應(yīng)的聲明式事務(wù)管 理,由spring管理相應(yīng)的連接。

    在實際的使用過程中發(fā)現(xiàn)的確getHibernateTemplate()比getSession()方法要好很多,但是有些方法在getHibernateTemplate()并沒有提供,這時我們用HibernateCallback 回調(diào)的方法管理數(shù)據(jù)庫.

    例如如下代碼:

    [java] view plaincopy
  • public?List?getList(){??
  • ????????return?(List)?getHibernateTemplate().execute(??
  • ????????????????new?HibernateCallback()?{??
  • ????????????????????public?List?doInHibernate(final?Session?s)??
  • ????????????????????????????throws?HibernateException,?SQLException?{??
  • ??
  • StringBuffer?sb?=?new?StringBuffer();??
  • Query?query?=?s.createSQLQuery(sb.toString());//[b]執(zhí)行普通sql[/b]??
  • Query?query?=?s.createQuery(sb.toString());//[b]執(zhí)行hql?[/b]??
  • List?list?=?query.list();??
  • return?list?;??
  • ????????????????????}??
  • ????????????????});???????????
  • ????}??
  • </span>??
  • 采用這種做法的好處是:不用關(guān)心事務(wù)。session的創(chuàng)建和銷毀,一切都在程序內(nèi)部完成。看看名字doInHibernate就知道好處了。不好的是程序看起來比較亂!


    推薦使用回調(diào)函數(shù)!

    總結(jié)

    以上是生活随笔為你收集整理的getHibernateTemplate()与getSession()的区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产熟女高潮视频 | 日韩va中文 | 欧美日韩国产中文 | 国产精品国产三级国产传播 | 天堂网视频 | 夜夜嗨av色一区二区不卡 | 五十路中出| 日韩不卡在线播放 | 成年人网站免费视频 | 国产午夜三级一区二区三 | 男女做那个的全过程 | 人人爱人人 | 欧美精品一区二区蜜臀亚洲 | 日本黄色录像片 | 国产成人在线免费 | 国语毛片 | 人人97| 国产一级视频免费观看 | 正在播放adn156松下纱荣子 | 亚洲一区免费视频 | 婷婷777| 久久九九国产精品 | 日韩精品第一 | 香蕉在线观看视频 | 人妻一区二区三区视频 | 国产又爽又色 | 激情综合丁香五月 | 欧美xxxx黑人xyx性爽 | 成人在线精品 | 欧美一区二区在线播放 | 私库av在线 | 亚洲我射av| 久久国产精品毛片 | 欧美性网站 | sm一区二区三区 | av综合站 | 老司机精品福利导航 | 激情五月婷婷在线 | 亚洲视频在线观看免费 | 亚洲成年人在线观看 | 双性尿奴穿贞c带憋尿 | 国产成人99久久亚洲综合精品 | 在线免费视频一区二区 | 黄色链接视频 | aaaaaa毛片 | 久久y| 无码精品一区二区三区在线播放 | 成人午夜免费毛片 | 69影院在线观看 | 午夜精产品一区二区在线观看的 | caoporn超碰97| 亚洲av午夜精品一区二区三区 | 一区二区三区四区国产精品 | 久久高清精品 | 精品九九九九 | 国产精品无码免费专区午夜 | 午夜色网| 国产大片在线观看 | 伦一理一级一a一片 | 蜜臀尤物一区二区三区直播 | 人人艹视频 | 欧美日韩一区二区三区电影 | 免费av播放 | 亚州男人的天堂 | 日韩人妻精品一区二区三区视频 | 国产又粗又黄又爽的视频 | 草草影院国产 | 中文字幕亚洲欧美日韩在线不卡 | 色999五月色| 成人毛片基地 | 美女露隐私网站 | 久久国产精品视频 | 日毛片| 国产无遮挡一区二区三区毛片日本 | 中文字幕精品国产 | 午夜免费| 天干夜夜爽爽日日日日 | 成人激情视频在线 | 三级三级久久三级久久 | 欧美性另类 | 日韩av电影在线播放 | 视频一区二区国产 | av二区在线 | 国产高潮久久 | 奇米成人网| 99ri视频| 国产亚洲福利 | 色综合天天干 | 一区二区三区国产在线 | 欧美射射 | 国产一区二区三区高清 | 邻居少妇张开双腿让我爽一夜 | 一级黄色美女视频 | 亚洲专区在线 | asian日本肉体pics | 手机福利在线 | 伊人色av| 上海女子图鉴 | 欧美性猛交乱大交3 |