多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > spring、hibernate、struts實例解答

spring、hibernate、struts實例解答

來源:程序員人生   發布時間:2013-12-31 14:20:18 閱讀次數:2904次

  1 Action是不是線程安全的?如果不是有什么方式可以保證Action的線程安全?如果是,說明原因
  不是線程安全的。只要不申明類變量就可以保證線程安全。因為只存在一個Action實例,所有線程會共享變量。

  聲明局部變量,或者擴展RequestProcessor,讓每次都創建一個Action,或者在spring中用scope="prototype"來管理

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

  3.struts中的幾個關鍵對象的作用(說說幾個關鍵對象的作用)
  Action:控制器類,ActionForm:表單對象,DynaValidatorForm:動態form,ActonMapping:配置文件中action節點的信息......

  4.說說AOP和IOC的概念以及在spring中是如何應用的
  AOP:面向切面編程,ioc:依賴注入;聲明式事務和編程式事務積極一些通用部分

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

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

  簡單地說:如果查詢不到數據load()會拋異常,get()會返回null。

  7.談談hibernate的延遲加載和openSessionInView
  
延遲加載要在session范圍內,用到的時候再加載;openSessionInBiew是在web層寫了一個

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

  加載在session中的這個前提。

  8.spring的事務有幾種方式?談談spring事務的隔離級別和傳播行為。
  聲明式事務和編程式事務
  隔離級別:
  - DEFAULT使用數據庫默認的隔離級別
  - READ_UNCOMMITTED會出現臟讀,不可重復讀和幻影讀問題
  - READ_COMMITTED會出現重復讀和幻影讀
  - REPEATABLE_READ會出現幻影讀
  - SERIALIZABLE最安全,但是代價最大,性能影響極其嚴重
  和傳播行:
  - REQUIRED存在事務就融入該事務,不存在就創建事務
  - SUPPORTS存在事務就融入事務,不存在則不創建事務
  - MANDATORY存在事務則融入該事務,不存在,拋異常
  - REQUIRES_NEW總是創建新事務
  - NOT_SUPPORTED存在事務則掛起,一直執行非事務操作
  - NEVER總是執行非事務,如果當前存在事務則拋異常
  - NESTED嵌入式事務

  9.Hibernate中的update()和saveOrUpdate()的區別.
  
  saveOrUpdate()做下面的事:
  如果對象已經在本session中持久化了,不做任何事
  如果另一個與本session關聯的對象擁有相同的持久化標識(identifier),拋出一個異常
  如果對象沒有持久化標識(identifier)屬性,對其調用save()
  如果對象的持久標識(identifier)表明其是一個新實例化的對象,對其調用save()
  如果對象是附帶版本信息的(通過 <version>或 <timestamp>)并且版本屬性的值表明其是一個新實例化的對象,save()它。否則update() 這個對象

  10.Spring對多種ORM框架提供了很好的支持,簡單描述在Spring中使用Hibernate的方法,并結合事務管理。(常用)
  getHiberanteTemplate里面提供了save,update,delete,find等方法。
  簡單說一個:如果配置了聲明式事務,當執行getHibernateTemplate的各種方法的時候,事務會

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

  autocommit=true

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

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

  的實現HIbernateTractionManager,對JDBC的JdbcTractionManager,

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

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

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美一区二区三区 | 日本三级黄视频 | 国产一区二区三区在线免费观看 | 精品99一区二区三区麻豆 | 国产精品视频一区二区三区不卡 | 亚洲国产第一页 | 97碰碰碰免费公开在线视频 | 日本69av| 国产第一区二区三区在线观看 | 国产免费全部免费观看 | 精品久久亚洲 | 中文欧美日韩 | 91瑟瑟| 欧洲精品码一区二区三区免费看 | 免费毛片全部不收费的 | 亚洲欧美日韩一区二区 | 日本xxxxx久色视频在线观看 | 黄色的网站免费观看 | 国产精品一区二区国产 | 国产成人精品视频一区 | 国产理论自拍 | 欧美日韩v | 久久国产一级毛片一区二区 | 爱爱一级 | 日韩亚洲欧美综合 | 欧美伦理三级在线播放影院 | 国产zzzwww在线观看 | 精品视频一区二区三区在线观看 | 一级毛片在线不卡直接观看 | 性做久久久久久久久 | 国产原创中文字幕 | 日本特级aⅴ一级毛片 | 欧美国产综合视频 | 2022偷拍午夜视频在线播放 | 性做久久久久久 | 国产精品亚洲综合五月天 | 国产亚洲欧美日韩综合综合二区 | 国产婷婷丁香久久综合 | 国产国产人精品视频69 | 亚洲精品图区 | 久久久久99这里有精品10 |