Session的get和load方法、delete、update

OID檢索:

get和load都是通過id來查詢數(shù)據(jù)的。
  • get:直接加載。一執(zhí)行就會執(zhí)行SQL語句。

  • load:懶加載。返回一個對象的代理。

    • 生成javassist的代理對象。
image.png

還有一個問題:數(shù)據(jù)庫的字符編碼可eclipse的編碼好像不一樣,在無論什么類型的數(shù)據(jù)都顯示為???

刪除數(shù)據(jù)的兩種方式:

  1. 先獲取要刪除的數(shù)據(jù)對象,然后調(diào)用delete()方法。

    • 這種方式必須手動開關(guān)事物。在配置文件里面配置事物的自動提交是無效的。

    • 配置文件里面配置的事物自動提交,只對insert有效。

  2. 先創(chuàng)建一個javabean對象,在調(diào)用delete方法刪除。(推薦,性能更好)

    • 創(chuàng)建對象也只是為了傳遞一個id值,delete方法底層會轉(zhuǎn)化為delete語句操作數(shù)據(jù)庫。

update:

方式一:通過get獲取數(shù)據(jù),調(diào)用set方法,事物提交,自動執(zhí)行update語句。
    • 直接調(diào)用setXXX(),來修改數(shù)據(jù)庫即可。

    • session.update();可以寫,可以不寫。事物提交會自動修改。

      • 有id會更新,沒有id會報錯。
    • 缺點,其實是會更新表中的所有字段的,效率低。

方式二:自己封裝bean對象,設(shè)置ID,需要調(diào)用update方法。
    • 神奇的是這種方式不會執(zhí)行update語句?。。。。ê罄m(xù))
  • saveorUpdate()方法也很神奇,前面調(diào)用了setXXX如果有id就會update,沒有就會insert。

  • save():

    • 有id會更新
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,248評論 0 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,666評論 1 32
  • 國家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 12,431評論 6 13
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當(dāng)在唯一索引所對應(yīng)的列上鍵入重復(fù)值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,977評論 0 9
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,017評論 0 11

友情鏈接更多精彩內(nèi)容