日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java關于持久層面試題目整理

瀏覽:35日期:2022-09-04 14:30:33

一、什么是ORM?

對象關系映射(Object-Relational Mapping,簡稱ORM)是一種為了解決程序的面向對象模型與數據庫的關系模型互不匹配問題的技術;

簡單的說,ORM是通過使用描述對象和數據庫之間映射的元數據(在Java中可以用XML或者是注解),將程序中的對象自動持久化到關系數據庫中或者將關系數據庫表中的行轉換成Java對象,其本質上就是將數據從一種形式轉換到另外一種形式。

二、Hibernate中SessionFactory是線程安全的嗎?Session是線程安全的嗎(兩個線程能夠共享同一個Session嗎)?

SessionFactory對應Hibernate的一個數據存儲的概念,它是線程安全的,可以被多個線程并發訪問。SessionFactory一般只會在啟動的時候構建。對于應用程序,最好將SessionFactory通過單例模式進行封裝以便于訪問。

Session是一個輕量級非線程安全的對象(線程間不能共享session),它表示與數據庫進行交互的一個工作單元。Session是由SessionFactory創建的,在任務完成之后它會被關閉。Session是持久層服務對外提供的主要接口。

Session會延遲獲取數據庫連接(也就是在需要的時候才會獲取)。為了避免創建太多的session,可以使用ThreadLocal將session和當前線程綁定在一起,這樣可以讓同一個線程獲得的總是同一個session。Hibernate 3中SessionFactory的getCurrentSession()方法就可以做到。

三、Session的save()、update()、merge()、lock()、saveOrUpdate()和persist()方法分別是做什么的?有什么區別?

Hibernate的對象有三種狀態:瞬時態(transient)、持久態(persistent)和游離態(detached)。

瞬時態的實例可以通過調用save()、persist()或者saveOrUpdate()方法變成持久態;

游離態的實例可以通過調用 update()、saveOrUpdate()、lock()或者replicate()變成持久態。save()和persist()將會引發SQL的INSERT語句,而update()或merge()會引發UPDATE語句。

save()和update()的區別在于一個是將瞬時態對象變成持久態,一個是將游離態對象變為持久態。merge()方法可以完成save()和update()方法的功能,它的意圖是將新的狀態合并到已有的持久化對象上或創建新的持久化對象。

對于persist()方法,按照官方文檔的說明:

1、persist()方法把一個瞬時態的實例持久化,但是并不保證標識符被立刻填入到持久化實例中,標識符的填入可能被推遲到flush的時間;

2、persist()方法保證當它在一個事務外部被調用的時候并不觸發一個INSERT語句,當需要封裝一個長會話流程的時候,persist()方法是很有必要的;

3、save()方法不保證第2條,它要返回標識符,所以它會立即執行INSERT語句,不管是在事務內部還是外部。至于lock()方法和update()方法的區別,update()方法是把一個已經更改過的脫管狀態的對象變成持久狀態;lock()方法是把一個沒有更改過的脫管狀態的對象變成持久狀態。

四、闡述Session加載實體對象的過程

1、Session在調用數據庫查詢功能之前,首先會在一級緩存中通過實體類型和主鍵進行查找,如果一級緩存查找命中且數據狀態合法,則直接返回;

2、如果一級緩存沒有命中,接下來Session會在當前NonExists記錄(相當于一個查詢黑名單,如果出現重復的無效查詢可以迅速做出判斷,從而提升性能)中進行查找,如果NonExists中存在同樣的查詢條件,則返回null;

3、如果一級緩存查詢失敗查詢二級緩存,如果二級緩存命中直接返回;

4、如果之前的查詢都未命中,則發出SQL語句,如果查詢未發現對應記錄則將此次查詢添加到Session的NonExists中加以記錄,并返回null;

5、根據映射配置和SQL語句得到ResultSet,并創建對應的實體對象;

6、將對象納入Session(一級緩存)的管理;

7、如果有對應的攔截器,則執行攔截器的onLoad方法;

8、如果開啟并設置了要使用二級緩存,則將數據對象納入二級緩存;

9、返回數據對象。

五、MyBatis中使用#和$書寫占位符有什么區別?

#將傳入的數據都當成一個字符串,會對傳入的數據自動加上引號;

$將傳入的數據直接顯示生成在SQL中。

注意:使用$占位符可能會導致SQL注射攻擊,能用#的地方就不要使用$,寫order by子句的時候應該用$而不是#。

內容補充:

JDBC編程有哪些不足之處,MyBatis是如何解決這些問題的?

● JDBC:數據庫鏈接創建、釋放頻繁造成系統資源浪費從而影響系統性能,如果使用數據庫鏈接池可解決此問題。

MyBatis:在SqlMapConfig.xml中配置數據鏈接池,使用連接池管理數據庫鏈接。

● JDBC:Sql語句寫在代碼中造成代碼不易維護,實際應用sql變化的可能較大,sql變動需要改變java代碼。

MyBatis:將Sql語句配置在XXXXmapper.xml文件中與java代碼分離。

● JDBC:向sql語句傳參數麻煩,因為sql語句的where條件不一定,可能多也可能少,占位符需要和參數一一對應。

MyBatis: Mybatis自動將java對象映射至sql語句。

● JDBC:對結果集解析麻煩,sql變化導致解析代碼變化,且解析前需要遍歷,如果能將數據庫記錄封裝成pojo對象解析比較方便。

MyBatis:Mybatis自動將sql執行結果映射至java對象。

到此這篇關于java關于持久層面試題目整理的文章就介紹到這了,更多相關java持久層面試題目內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩专区一卡二卡| 亚洲综合婷婷| 日本在线观看不卡视频| 狠狠干综合网| 红桃视频亚洲| 国产模特精品视频久久久久| 激情偷拍久久| 欧美.日韩.国产.一区.二区 | 国产日韩三级| 亚洲精品人人| 欧美日韩夜夜| 精品国产亚洲一区二区三区| 国产美女高潮在线观看| 亚洲黄色免费看| 桃色一区二区| 亚洲制服少妇| 黄色日韩精品| 日本在线视频一区二区| 日韩av成人高清| 国产伦理久久久久久妇女| 国产精品白丝一区二区三区| 精品国产乱码| 亚洲二区在线| 亚洲精品日韩久久| 国产亚洲欧美日韩在线观看一区二区 | 免费亚洲婷婷| 狠狠躁少妇一区二区三区| 久久九九电影| 欧美日韩国产亚洲一区| 免费在线视频一区| 午夜精品福利影院| 国产精品亚洲二区| 日韩av二区| 婷婷中文字幕一区| 日本不卡高清视频| 韩国女主播一区二区三区| 水野朝阳av一区二区三区| 国产精品亚洲一区二区三区在线观看| 亚洲一级特黄| 日本大胆欧美人术艺术动态| 欧美天堂一区| 久久久久久久久久久妇女| 中文字幕日韩欧美精品高清在线| 国产欧美在线| 日韩av一级| 亚洲一二三区视频| 精品国产美女a久久9999| 欧美另类综合| 久久99久久久精品欧美| 欧洲激情综合| 91国内精品| 亲子伦视频一区二区三区| 中文字幕一区二区三区在线视频| 麻豆精品在线播放| 日本免费一区二区三区四区| 伊人久久大香伊蕉在人线观看热v| 精品国产乱码| 天堂久久一区| 91看片一区| 91午夜精品| 欧美日韩一区二区综合| 国产图片一区| 国产精品97| 免费在线亚洲| 亚洲欧美不卡| 精品国产精品国产偷麻豆| 免费视频一区二区| 国产资源在线观看入口av| 综合激情一区| 亚洲精品一级二级| 国产日韩欧美在线播放不卡| 人人精品亚洲| 欧美成人aaa| 一区二区电影| 亚洲特级毛片| 国产精品草草| 亚洲三级毛片| 在线日韩一区| 亚洲一二三区视频| 在线国产日韩| 国产精品xx| 日本不卡的三区四区五区| 久久一级电影| 久久久久久亚洲精品美女| 欧美不卡在线| 精品国产aⅴ| 日本一区福利在线| 伊人久久亚洲美女图片| sm久久捆绑调教精品一区| 青青草国产成人99久久| 国产毛片一区| 狠狠操综合网| 久久婷婷久久| 日韩综合在线| 久久久国产精品网站| 日韩亚洲精品在线观看| 亚洲欧美网站| 亚洲二区免费| 麻豆精品蜜桃| 精品国产亚洲一区二区三区大结局 | 免费看日韩精品| 久久久久中文| bbw在线视频| 成人日韩av| 国产精品啊v在线| 日韩精品国产精品| 免费在线看一区| 色婷婷成人网| 99国产精品久久久久久久| 欧美日韩在线网站| 日韩精品麻豆| 激情国产在线| 麻豆精品久久久| 久久国产免费看| 日韩精选在线| 亚洲精品美女91| 亚洲影院天堂中文av色| 丝瓜av网站精品一区二区| 在线亚洲自拍| 尹人成人综合网| 黄色av一区| 欧美专区在线| 亚洲视频二区| 日韩黄色免费网站| 日韩av中文字幕一区二区| 91亚洲精品视频在线观看| 日韩极品在线观看| 日韩高清国产一区在线| 91亚洲无吗| 国产精品手机在线播放| 国产精品magnet| 精品视频高潮| 日韩网站中文字幕| 欧美日韩四区| 蜜臀久久久99精品久久久久久| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产日韩在线观看视频| 国产精品亚洲四区在线观看| 久久免费精品| 欧美不卡高清一区二区三区| 欧美肉体xxxx裸体137大胆| 午夜精品网站| 日本一不卡视频| 国产伦一区二区三区| 国产一区二区三区天码| 成人亚洲一区二区| 四虎884aa成人精品最新| 亚洲激情久久| 综合激情五月婷婷| 欧美伊人影院| 大香伊人久久精品一区二区| 欧美 日韩 国产一区二区在线视频 | 久久xxxx精品视频| 日韩国产91| 久久久免费人体| 日韩免费小视频| 国产一区欧美| 亚洲精品黄色| 日本综合视频| 国产传媒av在线| 亚洲欧美日韩国产| 国产伦精品一区二区三区千人斩| 色综合五月天| 视频一区二区三区中文字幕| 欧美一级一区| 久久激情网站| 日本不卡视频一二三区| 精品91福利视频| 亚洲激情另类| 国产亚洲久久| 99精品电影| 三级欧美韩日大片在线看| 国产精品一线| 在线视频观看日韩| 日韩不卡手机在线v区| 国产成人1区| 另类亚洲自拍| 精品免费av| 久久福利毛片| 精品不卡一区| 亚洲欧美日本国产| sm捆绑调教国产免费网站在线观看| 久久先锋影音| 精品国产中文字幕第一页| 亚洲精品极品少妇16p| 久久精品av麻豆的观看方式| 亚洲精品**中文毛片| 午夜精品福利影院| 99久精品视频在线观看视频| 日韩国产欧美视频| 伊人久久大香线蕉av不卡| 国产日韩一区二区三区在线 | 日韩三区在线| 欧美日韩伊人| 2023国产精品久久久精品双| 国产精品视频3p| 在线午夜精品| 欧美三级网址| 国产日韩欧美在线播放不卡| 亚洲作爱视频|