ssh常見面試題

其實spring,hibernate,struts面試的話 一般不會問什麼太深的問題  一般只是看你用過沒有  做過什麼什麼項目  有個面試官就問我 ssh集成要配置多少個xml文件 哇哈哈 很簡單的就答出來了 不過有些同學也問得挺難的 下面是些常問的問題

 

1.MVC,分析一下struts是如何實現MVC的
m:JavaBean 或結合 EJB 組件或者pojo構成
c:Action 來實現
v:一組 JSP 文件及其標籤構成。

2.struts中的幾個關鍵對象的作用

Action:控制器類,

ActionForm:表單對象,

DynaValidatorForm:

動態form,ActonMapping:

配置文件中action節點的信息..

3.Hibernate有哪幾種查詢數據的方式
hql查詢,sql查詢,條件查詢

4.load()和get()的區別
hibernate對於load方法認爲該數據在數據庫中一定存在,可以放心的使用代理來延遲加載,load默認支持延遲加載,在用到對象中的其他屬性數據時才查詢數據庫,但是萬一數據庫中不存在該記錄,只能拋異常ObjectNotFoundEcception;所說的load方法拋異常是指在使用該對象的數據時,數據庫中不存在該數據時拋異常,而不是在創建這個對象時。由於session中的緩存對於hibernate來說是個相當廉價的資源,所以在load時會先查一下session緩存看看該id對應的對象是否存在,不存在則創建代理(load時候之查詢一級緩存,不存在則創建代理)。get()現在一級緩存找,沒有就去二級緩存找,沒有就去數據庫找,沒有就返回null ;而對於get方法,hibernate一定要獲取到真實的數據,否則返回null。

5.spring的事務有幾種方式?談談spring事務的隔離級別和傳播行爲。
聲明事務和編程事務
隔離級別:
- DEFAULT使用數據庫默認的隔離級別
- READ_UNCOMMITTED會出現髒讀,不可重複讀和幻影讀問題
- READ_COMMITTED會出現重複讀和幻影讀
- REPEATABLE_READ會出現幻影讀
- SERIALIZABLE最安全,但是代價最大,性能影響極其嚴重
和傳播行:
- REQUIRED存在事務就融入該事務,不存在就創建事務
- SUPPORTS存在事務就融入事務,不存在則不創建事務
- MANDATORY存在事務則融入該事務,不存在,拋異常
- REQUIRES_NEW總是創建新事務
- NOT_SUPPORTED存在事務則掛起,一直執行非事務操作
- NEVER總是執行非事務,如果當前存在事務則拋異常
- NESTED嵌入式事務
6.Spring對多種ORM框架提供了很好的支持,簡單描述在Spring中使用Hibernate的方法,並結合事務管理。
getHiberanteTemplate裏面提供了save,update,delete,find等方法。
簡單說一個:如果配置了聲明式事務,當執行getHibernateTemplate的各種方法的時候,事務會

自動被加載
如果沒有配置事務,那麼以上操作不會真正的被同步到數據庫,除非配置了hibernate的

autocommit=true

7.spring的事務有幾種方式?談談spring事務的隔離級別和傳播行爲。
spring事務分兩種形式,聲明式事務和編程式事務,spring提供了一個事務的接口

PaltformTractionManager接口,針對不同的事務,spring進行了不同的實現,對hibernate事務

的實現HIbernateTractionManager,對JDBC的JdbcTractionManager,

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

個方法,獲取事務,提交和回滾的方法。

8.Hibernate中怎樣實現類之間的關係?(如:一對多、多對多的關係)

類與類之間的關係主要體現在表與表之間的關係進行操作,它們都市對對象進行操作,我們程序中把所有的表與類都映射在一起,它們通過配置文件中的many-to-one、one-to-many、many-to-many、

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章