久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

hibernate面試題

 yanjj 2013-09-16

Struts,Spring,Hibernate三大框架

 

 1.Hibernate工作原理及為什么要用,?

原理: 1.讀取并解析配置文件 2.讀取并解析映射信息,創(chuàng)建SessionFactory 3.打開Session 4.創(chuàng)建事務(wù)Transation 5.持久化操作 6.提交事務(wù) 7.關(guān)閉Session 8.關(guān)閉SesstionFactory

為什么要用: 1. 對(duì)JDBC訪問數(shù)據(jù)庫的代碼做了封裝,,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼,。 2. Hibernate是一個(gè)基于JDBC的主流持久化框架,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn),。他很大程度的簡化DAO層的編碼工作 3. hibernate使用Java反射機(jī)制,,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性。 4. hibernate的性能非常好,,因?yàn)樗莻€(gè)輕量級(jí)框架,。映射的靈活性很出色。它支持各種關(guān)系數(shù)據(jù)庫,,從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系,。

 

2Hibernate是如何延遲加載?

1. Hibernate2延遲加載實(shí)現(xiàn):a)實(shí)體對(duì)象 b)集合(Collection

2. Hibernate3 提供了屬性的延遲加載功能 當(dāng)Hibernate在查詢數(shù)據(jù)的時(shí)候,數(shù)據(jù)并沒有存在與內(nèi)存中,,當(dāng)程序真正對(duì)數(shù)據(jù)的操作時(shí),,對(duì)象才存在與內(nèi)存中,,就實(shí)現(xiàn)了延遲加載,他節(jié)省了服務(wù)器的內(nèi)存開銷,,從而提高了服務(wù)器的性能,。 

 

 

3Hibernate中怎樣實(shí)現(xiàn)類之間的關(guān)系?(如:一對(duì)多、多對(duì)多的關(guān)系)

類與類之間的關(guān)系主要體現(xiàn)在表與表之間的關(guān)系進(jìn)行操作,,它們都是對(duì)對(duì)象進(jìn)行操作,,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one,、one-to-many,、many-to-many

 

 

4.Struts1流程:

1、客戶端瀏覽器發(fā)出HTTP請(qǐng)求,。2,、根據(jù)web.xml配置,該請(qǐng)求被ActionServlet接收,。3,、根據(jù)struts-config.xml配置, ActionServlet先將請(qǐng)求中的參數(shù)填充到ActionForm中,,然后ActionServlet再將請(qǐng)求發(fā)送到Action 進(jìn)行處理,。4、是否驗(yàn)證,,需要驗(yàn)證則調(diào)用ActionFormvalidate方法,,驗(yàn)證失敗則跳轉(zhuǎn)到input,成功則繼續(xù),。5,、ActionActionForm獲得數(shù)據(jù),調(diào)用javabean 中的業(yè)務(wù)方法處理數(shù)據(jù),。6,、Action返回ActionForward對(duì)象,跳轉(zhuǎn)到相應(yīng)JSP頁面或Action,。7,、返回HTTP響應(yīng)到客戶端瀏覽器。

MVC設(shè)計(jì)模式:modal:“模型” 也稱業(yè)務(wù)邏輯,,是正真完成任務(wù)的代碼,相當(dāng)與JavaBeanview:視圖,,其實(shí)就是顯示界面,相當(dāng)于JSPcontroller:控制器,,他控制模型和視圖的交互過程,,相當(dāng)于servletstruts1是基于MVC設(shè)計(jì)模式hibernate是基于ORM對(duì)象關(guān)系映射

5.struts是什么?

struts1是基于JSPservlet的一個(gè)開源的Web應(yīng)用框架,,使用的是MVC的設(shè)計(jì)模式struts2是基于webwork技術(shù)的框架,,是sunwebwork公司聯(lián)手開發(fā)的一個(gè)功能非常齊全的框架,,struts2struts1沒有任何關(guān)系,是一個(gè)全新的框架

 

   

1 Action是不是線程安全的,?如果不是 有什么方式可以保證Action的線程安全,?如果是,說明原因

不是

聲明局部變量,,或者擴(kuò)展RequestProcessor,,讓每次都創(chuàng)建一個(gè)Action,或者在spring中用scope="prototype"來管理

6.load()get()的區(qū)別

hibernate對(duì)于load方法認(rèn)為該數(shù)據(jù)在數(shù)據(jù)庫中一定存在,,可以放心的使用代理來延遲加載,,load默認(rèn)支持延遲加載,在用到對(duì)象中的其他屬性數(shù) 據(jù)時(shí)才查詢數(shù)據(jù)庫,,但是萬一數(shù)據(jù)庫中不存在該記錄,,只能拋異常ObjectNotFoundEcception;所說的load方法拋異常是指在使用該對(duì) 象的數(shù)據(jù)時(shí),,數(shù)據(jù)庫中不存在該數(shù)據(jù)時(shí)拋異常,,而不是在創(chuàng)建這個(gè)對(duì)象時(shí)。由于session中的緩存對(duì)于hibernate來說是個(gè)相當(dāng)廉價(jià)的資源,,所以在 load時(shí)會(huì)先查一下session緩存看看該id對(duì)應(yīng)的對(duì)象是否存在,不存在則創(chuàng)建代理(load時(shí)候之查詢一級(jí)緩存,,不存在則創(chuàng)建代理),。get() 現(xiàn)在一級(jí)緩存找,沒有就去二級(jí)緩存找,,沒有就去數(shù)據(jù)庫找,,沒有就返回null ;而對(duì)于get方法,,hibernate一定要獲取到真實(shí)的數(shù)據(jù),,否則返回null

7.談?wù)?/SPAN>hibernate的延遲加載和openSessionInView

延遲加載要在session范圍內(nèi),,用到的時(shí)候再加載,;opensessioninview是在web層寫了一個(gè)

filter來打開和關(guān)閉session,這樣就表示在一次request過程中session一直開著,,保證了延遲

加載在session中的這個(gè)前提,。

9.Hibernate中的update()saveOrUpdate()的區(qū)別.

摘自hibernate說明文檔:

saveOrUpdate()做下面的事:

如果對(duì)象已經(jīng)在本session中持久化了,不做任何事

如果另一個(gè)與本session關(guān)聯(lián)的對(duì)象擁有相同的持久化標(biāo)識(shí)(identifier),,拋出一個(gè)異常

如果對(duì)象沒有持久化標(biāo)識(shí)(identifier)屬性,,對(duì)其調(diào)用save()

如果對(duì)象的持久標(biāo)識(shí)(identifier)表明其是一個(gè)新實(shí)例化的對(duì)象,對(duì)其調(diào)用save()

如果對(duì)象是附帶版本信息的(通過 <version> <timestamp> 并且版本屬性的值表明其是一個(gè)新實(shí)例化的對(duì)象,,save()它,。 否則update() 這個(gè)對(duì)象

10.Spring對(duì)多種ORM框架提供了很好的支持,,簡單描述在Spring中使用Hibernate的方法,并結(jié)合事務(wù)管理,。

getHiberanteTemplate里面提供了save,,updatedelete,,find等方法,。

簡單說一個(gè):如果配置了聲明式事務(wù),當(dāng)執(zhí)行getHibernateTemplate的各種方法的時(shí)候,,事務(wù)會(huì)

自動(dòng)被加載

如果沒有配置事務(wù),,那么以上操作不會(huì)真正的被同步到數(shù)據(jù)庫,除非配置了hibernate

autocommit=true

8.spring的事務(wù)有幾種方式,?談?wù)?/SPAN>spring事務(wù)的隔離級(jí)別和傳播行為,。

spring事務(wù)分兩種形式,聲明式事務(wù)和編程式事務(wù),,spring提供了一個(gè)事務(wù)的接口

PaltformTractionManager接口,,針對(duì)不同的事務(wù),spring進(jìn)行了不同的實(shí)現(xiàn),對(duì)hibernate事務(wù)

的實(shí)現(xiàn)HIbernateTractionManager,對(duì)JDBCJdbcTractionManager,,

DataSourceTractionManager以及JdoTractionManager,。接口platformTractionManager提供了三

個(gè)方法,獲取事務(wù),,提交和回滾的方法,。

******************************************************************************

Hibernate工作原理及為什么要用?

原理:

1.讀取并解析配置文件

2.讀取并解析映射信息,,創(chuàng)建SessionFactory

3.打開Sesssion

4.創(chuàng)建事務(wù)Transation

5.持久化操作

6.提交事務(wù)

7.關(guān)閉Session

8.關(guān)閉SesstionFactory

為什么要用:

1.    對(duì)JDBC訪問數(shù)據(jù)庫的代碼做了封裝,,大大簡化了數(shù)據(jù)訪問層繁瑣的重復(fù)性代碼。

2.    Hibernate是一個(gè)基于JDBC的主流持久化框架,,是一個(gè)優(yōu)秀的ORM實(shí)現(xiàn),。他很大程度的簡化DAO層的編碼工作

3.    hibernate使用Java反射機(jī)制,而不是字節(jié)碼增強(qiáng)程序來實(shí)現(xiàn)透明性,。

4.    hibernate的性能非常好,,因?yàn)樗莻€(gè)輕量級(jí)框架。映射的靈活性很出色,。它支持各種關(guān)系數(shù)據(jù)庫,,從一對(duì)一到多對(duì)多的各種復(fù)雜關(guān)系。

2 Hibernate是如何延遲加載?

1. Hibernate2延遲加載實(shí)現(xiàn):a)實(shí)體對(duì)象 b)集合(Collection

2. Hibernate3 提供了屬性的延遲加載功能

當(dāng)Hibernate在查詢數(shù)據(jù)的時(shí)候,,數(shù)據(jù)并沒有存在與內(nèi)存中,,當(dāng)程序真正對(duì)數(shù)據(jù)的操作時(shí),對(duì)象才存在與內(nèi)存中,,就實(shí)現(xiàn)了延遲加載,,他節(jié)省了服務(wù)器的內(nèi)存開銷,,從而提高了服務(wù)器的性能。

3Hibernate中怎樣實(shí)現(xiàn)類之間的關(guān)系?(如:一對(duì)多,、多對(duì)多的關(guān)系)

類與類之間的關(guān)系主要體現(xiàn)在表與表之間的關(guān)系進(jìn)行操作,,它們都市對(duì)對(duì)象進(jìn)行操作,我們程序中把所有的表與類都映射在一起,,它們通過配置文件中的many-to-one,、one-to-manymany-to-many,、

4 說下Hibernate的緩存機(jī)制

1. 內(nèi)部緩存存在Hibernate中又叫一級(jí)緩存,,屬于應(yīng)用事物級(jí)緩存

2. 二級(jí)緩存:

a) 應(yīng)用及緩存

b) 分布式緩存

條件:數(shù)據(jù)不會(huì)被第三方修改、數(shù)據(jù)大小在可接受范圍,、數(shù)據(jù)更新頻率低,、同一數(shù)據(jù)被系統(tǒng)頻繁使用、非              關(guān)鍵數(shù)據(jù)

c) 第三方緩存的實(shí)現(xiàn)

5 Hibernate的查詢方式

Sql,、Criteria,object comptosition

Hql

1,、 屬性查詢

2 參數(shù)查詢,、命名參數(shù)查詢

3,、 關(guān)聯(lián)查詢

4 分頁查詢

5,、 統(tǒng)計(jì)函數(shù)

6 如何優(yōu)化Hibernate,?

1.使用雙向一對(duì)多關(guān)聯(lián),不使用單向一對(duì)多

2.靈活使用單向一對(duì)多關(guān)聯(lián)

3.不用一對(duì)一,,用多對(duì)一取代

4.配置對(duì)象緩存,不使用集合緩存

5.一對(duì)多集合使用Bag,多對(duì)多集合使用Set

6. 繼承類使用顯式多態(tài)

7. 表字段要少,,表關(guān)聯(lián)不要怕多,,有二級(jí)緩存撐腰

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多