1、Hibernate悲觀鎖和樂觀鎖

(更多面試題推薦:java面試題及答案)
Hibernate悲觀鎖:在數(shù)據(jù)有加載的時候就給其進行加鎖,直到該鎖被釋放掉,其他用戶才可以進行修改,優(yōu)點:數(shù)據(jù)的一致性保持得很好,缺點:不適合多個用戶并發(fā)訪問。當一個鎖住的資源不被釋放掉的時候,這個資源永遠不會被其他用戶進行修改,容易造成無限期的等待。
Hibernate樂觀鎖:就是在對數(shù)據(jù)進行修改的時候,對數(shù)據(jù)才去版本或者時間戳等方式來比較,數(shù)據(jù)是否一致性來實現(xiàn)加鎖。優(yōu)點比較好。
2、Hibernate三種狀態(tài)
臨時狀態(tài):new的對象還未持久化,還沒處于Session中
持久狀態(tài):已經(jīng)持久化,加入到session緩存沖,處于此狀態(tài)的對象叫持久對象;
游離狀態(tài):持久化對象脫離了Session的對象。如Session緩存被清空的對象。特點:已經(jīng)持久化,但不在Session緩存中。處于此狀態(tài)的對象叫游離對象;
(相關教程推薦:java入門教程)
3、hibernate和ibatis的區(qū)別
ibatis:開源項目上手簡單,開發(fā)靈活,開發(fā)工作量大,大多自己寫sql,很多配置文件
Hibernate:開源的對象關系映射框架,開發(fā)效率高,但不能干擾sql,做優(yōu)化程度較低
4、講講mybatis連接池
常見的mybatis連接池有原生、c3p0、dbcp三類,通過工廠模式創(chuàng)建DataSource接口,它的實現(xiàn)有unpooledDataSource(不帶連接池的數(shù)據(jù)源),PooledDataSource(帶連接池的數(shù)據(jù)源),它們都可以通過對應的工廠類對象獲取;
拿PooledDataSource來說的話首先:需要一個連接數(shù)據(jù)庫的對象,在執(zhí)行SQL語句的時候獲取java.sql.Connection連接對象
其次:PooledDataSource數(shù)據(jù)源將Connection連接池對象包裹成PooledConnection對象放到了PoolState類型的容器中維護。 MyBatis將連接池中的連接池dui分為兩種狀態(tài): 空閑狀態(tài)(idle)和活動狀態(tài)(active),PooledConnection對象分別被存儲到PoolState容器內(nèi)的idleConnections和activeConnections兩個List集合中:
空閑(idle)狀態(tài)就把PooledConnection對象被放置到idleConnections集合中,表示當前閑置的沒有被使用的PooledConnection集合,調(diào)用PooledDataSource的getConnection()方法時,會優(yōu)先從此集合中取PooledConnection對象。當用完一個java.sql.Connection對象時,MyBatis會將其包裹成PooledConnection對象放到此集合中。
活動(active)狀態(tài)下把PooledConnection對象被放置到名為activeConnections的ArrayList中,表示當前正在被使用的PooledConnection集合,調(diào)用PooledDataSource的getConnection()方法時,會優(yōu)先從idleConnections集合中取PooledConnection對象,如果沒有,則看此集合是否已滿,如果未滿,PooledDataSource會創(chuàng)建出一個PooledConnection,添加到此集合中,并返回;
(視頻教程推薦:java課程)
5、SpringMVC的工作原理
用戶發(fā)送請求,被前端控制器DispatcherServlet捕獲攔截;
DispatcherServlet調(diào)用HandlerMapping處理器映射管理對象獲得Handler處理器;
DispatcherServlet根據(jù)Handler去獲取適合的適配器HandlerAdpter,HttpMessageConveter將請求信息轉換成指定的響應對象;
有了適配器,把請求參數(shù)填充到Handler,spring就開始執(zhí)行Handler(Controller)進行數(shù)據(jù)轉換、數(shù)據(jù)驗證、數(shù)據(jù)格式化操作
Handler執(zhí)行完之后,向DispatcherServlet返回一個ModelAndView對象;
根據(jù)返回的ModelAndView選擇一個合適的ViewResolver視圖解析器,找到ModelAndView指定的視圖;
ViewResolver結合Model、View渲染顯示頁面;
新聞標題:多年開發(fā)經(jīng)驗總結的Java面試題——(七)
當前URL:http://chinadenli.net/article8/cgeiip.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、移動網(wǎng)站建設、Google、網(wǎng)站收錄、品牌網(wǎng)站設計、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)