一、hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了很是輕量級的對象封裝,使得java程序員能夠爲所欲爲的使用對象編程思惟來操縱數據庫。java
工做原理:程序員
1.讀取並解析配置文件2.讀取並解析映射信息,建立SessionFactory 3.打開Sesssion 4.建立事務Transation 5.持久化操做6.提交事務7.關閉Session 8.關閉SesstionFactoryspring
優勢有:sql
1.對JDBC訪問數據庫的代碼作了封裝,大大簡化了數據訪問層繁瑣的重複性代碼。數據庫
三、Hibernate使用Java反射機制而不是字節碼加強程序來實現透明性。編程
四、Hibernate的性能好,映射的靈活性比較出色。它支持各類關係數據庫,從一對一到多對多的各類複雜關係。緩存
二、hibernate的核心類是什麼??重要方法是什麼??服務器
Configuration、SessionFactorysession
Session以下方法Save、load、Update、Deletemvc
Queryq=CreateQuery(「from Customer where customerName=:customerName」)
beginTransaction、close、Transaction、Commit()
三、session.load()和session.get()的區別
Session.load/get方法都可以根據指定的實體類和id從數據庫讀取記錄,並返回與之對應的實體對象。其區別在於:
若是未能發現符合條件的記錄,get方法返回null,而load方法會拋出一個ObjectNotFoundException。
四、hql和sql的區別
【能夠這樣說,hibernate是面嚮對象語言與關係型數據庫之間的橋樑,他使得程序員能夠不用關心底層數據庫鏈接的代碼,而能夠專心寫業務邏輯。】
sql是面向數據庫表查詢
hql是面向對象查詢的,其form子句返回的是對象的實例。
五、hibernate與jdbc之間的區別
【能夠這樣說,hibernate是面嚮對象語言與關係型數據庫之間的橋樑,他使得程序員能夠不用關心底層數據庫鏈接的代碼,而能夠專心寫業務邏輯。】
Hibernate做爲一個O/R Mapping,比JDBC具有的優點有:
1.編程思想上,更加符合人的邏輯思惟習慣,面向對象比面向過程更加容易理解,測試和維護
2.開發維護速度上,Hibernate顯著的快,代碼量顯著小
3.經過Annotation進行數據庫的字段加密
4.對Sql不熟的菜鳥來講能夠自動調優
5.結合spring,經過聲明式事務能夠省略事務的控制,事務以橫切面形式出現
Jdbc比Hibernate具有的優點有:
1.大數據量訪問時,Jdbc的效率顯著快
2.直接操做數據庫比較靈活
六、Hibernate是如何延遲加載?
當Hibernate在查詢數據的時候,數據並無存在與內存中,當程序真正對數據的操做時,對象才存在與內存中,就實現了延遲加載,他節省了服務器的內存開銷,從而提升了服務器的性能。
七、說下Hibernate的緩存機制
1.內部緩存存在Hibernate中又叫一級緩存,屬於應用事物級緩存
2.二級緩存:
a)應用及緩存
b)分佈式緩存
c)第三方緩存的實現
八、spring工做機制及爲何要用?
【spring是一個輕量的控制反轉和麪向切面的容器框架】
1.springmvc把全部的請求都提交給DispatcherServlet,它會委託應用系統的其餘模塊負責對請求進行真正的處理工做。
2.DispatcherServlet查詢一個或多個HandlerMapping,找處處理請求的Controller.
3.DispatcherServlet把請求提交到目標Controller
4.Controller進行業務邏輯處理後,會返回一個ModelAndView
5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象
6.視圖對象負責渲染返回給客戶端。
IoC就是由容器來控制業務對象之間的依賴關係。控制反轉的本質,是控制權由應用代碼轉到了外部容器,控制器的轉移既是所謂的反轉。控制權的轉移帶來的好處就是下降了業務對象之間的依賴程度,即實現瞭解耦。
DI/IOC,對持久層和表示層的控制與分配,增長系統的靈活性和穩定性. AOP,面向切面,利用代理對程序的有效管理.
spring是一個輕量級的IOC和AOP框架,經過spring的IOC實現鬆耦合,而做爲一個AOP框架他又能分離系統服務,實現內聚開發Spring最好的地方是它有助於您替換對象。有了Spring,只要用JavaBean屬性和配置文件加入依賴性(協做對象)。而後能夠很容易地在須要時替換具備相似接口的協做對象。}
Spring對多種ORM框架提供了很好的支持
做者: 石頭人m 連接:http://www.imooc.com/article/18814 來源:慕課網