最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

hibernate 常用方法介紹

 更新時間:2013年09月22日 15:05:44   作者:  
這篇文章介紹了hibernate的常用方法,有需要的朋友可以參考一下
一、hibetnateTemplate常用方法

1、delete(Object entity) 刪除指定的持久化實例
在程序中一般先用    Assert.notNull和 Assert.isTrue斷言entity是否為空 和 entity的id是否大于0若
否則事務(wù)回滾。再用get(Class entityClass,Serializable id,LockMode lockMode)加鎖查詢出持久
化實例,一般用lockMode.update悲觀鎖,最后用delete(Object entity)來刪除此實例。

2、deleteAll(Collection entities) 刪除集合內(nèi)全部持久化實例
entities必須為持久化實例,否則報數(shù)據(jù)庫異常錯誤。

3、find(String queryString) 根據(jù)HQL查詢字符串來返回實例集合
find方法在執(zhí)行時會先查找緩存,如果緩存找不到再查找數(shù)據(jù)庫,如果再找不到就會返回null。

4、get(Class entityClass,Serializable id)根據(jù)主鍵加載特定持久化實例
在程序中一般先用     Assert.isTrue斷言id是否大于0,若大于0繼續(xù)執(zhí)行,若查到數(shù)據(jù)則返回實例,否則返回空
不同于load,load若有數(shù)據(jù)則返回實例,否則報出ObjectNotFoundEcception異常,相比來說get效率高些

5、save(Object entity) 保存新的實例
在程序中一般先用    Assert.notNull斷言實體是否為空,在進行保存。

6、saveOrUpdate(Object entity)根據(jù)實例的狀態(tài)選擇保存或者是更新
此方法同時包含了save與update方法的功能,如果傳入的參數(shù)是臨時對象vo 沒有id,就調(diào)用save方法;如果傳
入的參數(shù)是游離對象有id,就調(diào)用update()方法;如果傳入的參數(shù)是持久化對象po,就直接返回。

7、update(Object entity) 更新實例的狀態(tài) 實例必須為持久化狀態(tài)
在程序中一般先用    Assert.notNull和 Assert.isTrue斷言entity是否為空 和 entity的id是否大于0,
然后在更新實例,entity必須含有id否則不能更新。

8、Object execute(hibetnateCallback action)是HibernateCallback接口類。
當(dāng)dao中的方法不能滿足程序需要時可以考慮用此方法。如:根據(jù)幾個不同參數(shù)需要返回唯一實體時用uniqueResult()返回。
HibernateCallback里面定義了一個doInHibernate的方法,這個方法是可變的。如果要查找數(shù)據(jù)方法應(yīng)該就
是:session.load()。刪除數(shù)據(jù)就是session.delete().這樣的話查詢數(shù)據(jù)庫的方法用execute方法。

 
9、bulkUpdate()通過語句直接增加、更新、刪除實體
一般有bulkUpdate(String sqlString) 和 bulkUpdate(String sqlString,Object[] object)兩個
方法,返回增加,更新,或者刪除的數(shù)量一般用于批量。
 
10、hibernate主鍵生成策略
 
(1)Assigned: 在插入數(shù)據(jù)的時候主鍵由用戶自己添加。如:<generator class="assigned"/>
(2)sequence: 調(diào)用數(shù)據(jù)庫的sequence來生成主鍵,要設(shè)定序列名,否則hibernate無法找到。
如:<param   name="sequence">ENTTY_NAME_SEQ</param>
(3)increment 插入數(shù)據(jù)的時候hibernate會給主鍵添加一個自增的主鍵,但是一個hibernate實例就維護一個計數(shù)器,
所以在多個實例運行的時候不能使用這個方法。

11、實體對象的三種狀態(tài)
Session的生命周期綁定在一個物理的事務(wù)(tansaction)上面。
Session的主要功能是提供對映射的實體類實例的創(chuàng)建,讀取和刪除操作
(1)自由狀態(tài)(transient): 不曾進行持久化,未與任何Session相關(guān)聯(lián)
(2)持久化狀態(tài)(persistent): 僅與一個Session相關(guān)聯(lián)
持久化實例可以通過調(diào)用 delete()變成游離狀態(tài)。通過get()或load()方法得到的實例都是持久化狀態(tài)的
(3)游離狀態(tài)(detached): 已經(jīng)進行過持久化,但當(dāng)前未與任何Session相關(guān)聯(lián)
游離狀態(tài)的實例可以通過調(diào)用update(),lock(),replicate(),save(),persist()或者saveOrUpdate()方法進行持久化

相關(guān)文章

  • Spring事務(wù)管理的使用細(xì)則淺析

    Spring事務(wù)管理的使用細(xì)則淺析

    事務(wù)的作用就是為了保證用戶的每一個操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就 回退到事務(wù)開始未進行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們在使用Spring開發(fā)應(yīng)用時,大部分情況下也都需要使用事務(wù)
    2023-02-02
  • Java  中橋接模式——對象結(jié)構(gòu)型模式的實例詳解

    Java 中橋接模式——對象結(jié)構(gòu)型模式的實例詳解

    這篇文章主要介紹了Java 中橋接模式——對象結(jié)構(gòu)型模式的實例詳解的相關(guān)資料,希望通過本文大家能掌握這部分知識,需要的朋友可以參考下
    2017-09-09
  • Java并發(fā)編程示例(七):守護線程的創(chuàng)建和運行

    Java并發(fā)編程示例(七):守護線程的創(chuàng)建和運行

    這篇文章主要介紹了Java并發(fā)編程示例(七):守護線程的創(chuàng)建和運行,在本節(jié)示例中,我們將創(chuàng)建兩個線程,一個是普通線程,向隊列中寫入事件,另外一個是守護線程,清除隊列中的事件,需要的朋友可以參考下
    2014-12-12
  • Spring Security源碼解析之權(quán)限訪問控制是如何做到的

    Spring Security源碼解析之權(quán)限訪問控制是如何做到的

    Spring Security 中對于權(quán)限控制默認(rèn)已經(jīng)提供了很多了,但是,一個優(yōu)秀的框架必須具備良好的擴展性,下面小編給大家介紹Spring Security源碼解析之權(quán)限訪問控制是如何做到的,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • nacos在mac上部署提示找不到或無法加載主類的解決

    nacos在mac上部署提示找不到或無法加載主類的解決

    這篇文章主要介紹了nacos在mac上部署提示找不到或無法加載主類的解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 快速解決springboot在yml配置了啟動端口但啟動還是8080問題

    快速解決springboot在yml配置了啟動端口但啟動還是8080問題

    這篇文章主要介紹了快速解決springboot在yml配置了啟動端口但啟動還是8080問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • javaweb如何使用華為云短信通知公共類調(diào)用

    javaweb如何使用華為云短信通知公共類調(diào)用

    這篇文章主要介紹了javaweb使用華為云短信通知公共類調(diào)用的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring?AOP利用切面實現(xiàn)日志保存的示例詳解

    Spring?AOP利用切面實現(xiàn)日志保存的示例詳解

    最近領(lǐng)導(dǎo)讓寫個用切面實現(xiàn)日志保存,經(jīng)過調(diào)研和親測,以完美解決。在這里分享給大家,給有需要的碼友直接使用,希望對大家有所幫助
    2022-11-11
  • SpringBoot?Redis清除所有的key的實現(xiàn)方法

    SpringBoot?Redis清除所有的key的實現(xiàn)方法

    本文主要介紹了SpringBoot?Redis清除所有的key的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • springboot+thymeleaf整合阿里云OOS對象存儲圖片的實現(xiàn)

    springboot+thymeleaf整合阿里云OOS對象存儲圖片的實現(xiàn)

    本文主要介紹了springboot+thymeleaf整合阿里云OOS對象存儲圖片的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05

最新評論

平定县| 井冈山市| 仪征市| 水富县| 宜章县| 仁怀市| 封开县| 石狮市| 称多县| 耒阳市| 九龙城区| 开阳县| 大洼县| 深水埗区| 克东县| 日照市| 安陆市| 玉山县| 平塘县| 乐亭县| 太仓市| 如东县| 青龙| 临汾市| 江川县| 荥经县| 搜索| 崇礼县| 会理县| 屏南县| 山阳县| 昂仁县| 德阳市| 修水县| 峨眉山市| 乌审旗| 宣汉县| 阿勒泰市| 永兴县| 荔波县| 宁陕县|