JavaEE三大框架ssh
??JAVA中常說的三大框架指:SSH
即:Spring、Struts、Hibernate?
Spring:功能強大的組件粘合濟,能夠將你的所有的java功能模塊用配置文件的方式組合起來(還讓你感覺不到spring的存在)成為一個完成的應用
Struts:功能強大的MVC架構
Hibernate:強大的ORM工具,然后很方便將數據庫記錄轉化為java的實體實例,將java的實體實例很容易的保存到數據庫中,如果你不需要很復雜的數據庫訪問,利用它你根本就不用了解數據庫的細節
JavaEE三大框架
Hibernate
Hibernate是(orm)對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,Hibernate?是一個開源代碼的對象關系映射框架,是強大的ORM工具,通過mapping的標簽來做文件映射,方便將數據庫記錄轉化為java的實體實例,將java的實體實例很容易的保存到數據庫中。
簡化jdbc操作,可以自動把從數據庫查詢到的結果封裝成對象
基于jdbc的主流持久化框架
優點:優秀的Java?持久化層解決方案?
主流的對象—關系映射工具?
簡化了JDBC?繁瑣的編碼?
將數據庫的連接信息都存放在配置文件
表單的CURD:創建(Create)、更新(Update)、讀取(Read)和刪除(Delete)操作
查詢語言
ps:qbc和本地sql檢索。。。
1、SQL:寫SQL語句,然后通過Hibernate把查詢的數據賦予POJO
(Structured Query Language)結構化查詢語言
2、HQL:面向對象查詢 (推薦用法)
(Hibernate Query Language) hibernate?查詢語言
3、Criteria:更加面向對象的查詢方式
對象狀態
瞬時對象:還沒有與數據庫有任何關聯的對象,這樣的對象稱為瞬時(臨時)對象
持久化對象:瞬時對象一旦與session關聯起來直到session關閉,整個過程中的po對象都稱為持久化對象
脫離(游離)對象:曾經與數據庫有過同步,但是,現在數據庫已經關閉了。而對象還處于內存中,這個處于緩存中的對象稱為脫離對象。
瞬時對象和游離對象區別:一般情況下,瞬時對象無主鍵,脫離對象有主鍵
關系映射
一對多映射?one2many
開發中表與表之間最常見的就是1對多關系,比如一個用戶對應多個地址(用戶表,地址表),一個部門下有多個雇員(dept,emp)
一對一映射?one2one
?唯一主鍵關聯的一對一? 和??外鍵關聯的一對一
連接池?存放連接的池子 提高效率
緩存
Hibenrate的session緩存,稱為一級緩存,不安全,生命周期一般很短,一個sesison對應一個數據庫的一次操作(像JSP中的?request內存)
一級緩存默認開啟,也無法關閉。
Hibernate的SessionFactory緩存,稱為二級緩存,安全,周期長,一個SessionFactory對應一個數據庫,像JSP內置對象的(application)
spring框架
spring最主要的作用是控制對象的創建,和管理對象與對象間的關系
依賴注入(DI)又稱為控制反轉(IOC),通常來說,當某個角色需要另一個角色才能正常運行時,通常是由調用者來創建被調用者的實例。但是在Spring框架中,創建被調用者的任務交給了Spring框架。
面向切片編程(AOP)是面向對象編程(OOP)的延續,AOP中代碼的編寫順序不再影響代碼的執行順序,目的是解耦業務代碼和公共服務代碼(如日志,安全,事務等)。
Spring是一個容器框架,他可以負責產生bean(Java類、JavaBean、Dao….),并維護bean與bean之間的關系能夠將你的所有的java功能模塊用配置文件的方式組合起來成為一個完成的應用;spring利用它的IOC和AOP來處理控制業務,負責對數據庫的操作。Spring將顯卡和CPU組裝在一起,相當于電腦的一個主板。
一般來說我在開發ssh框架項目的時候使用注解進行依賴注入,
dao層代碼使用注解@Repository ? ?
service層使用注解@Service @Transactional ?
controller層 使用注解@controller
如果使用的是struts2框架controller還要加注解@scope(" prototype" )
我們注入對象使用@Resource (先按名稱查找,再按類型查找)
@Autowired (先類型后名稱)
Struts框架
Struts:struts2是個MVC框架
Struts的關鍵是M(MODEL)-V(VIEW)-C(CONTROL)
模型(M):用于封裝與業務邏輯相關的數據和數據處理方法。
視圖(V):用于數據的展現
控制器(C):負責相應請求,協調Model和View
Struts是一個基于Sun J2EE平臺的MVC框架,主要是采用Servlet和JSP技術來實現的。由于Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中,開發人員利用其進行開發時不用再自己編碼實現全套MVC模式,極大的節省了時間,所以說Struts是一個非常不錯的應用框架。
struts2是個MVC框架
作用是把前臺(jsp, HTML)提交的表單數據,在控制器接收時進行自動的封裝
主流MVC框架有struts2和spring MVC過時strutsl
效率servlet>springMVC>struts2
?(servlet, springMVC是單例模式。struts2不是 單例模式)
核心原理:我們在web項目中定 又一個過濾器,過濾所有請求,請把請求交給StrutsPrepareAndExecuteFilter處理,然后經過多個struts2的默認攔截器, 把數據封裝好過,會進入到action中進行操作
struts2默認把封裝求得的數據放在了request對象中,而且struts2默認從控制器跳轉到頁面的方式是轉發
struts2的實現新建class,讓他繼承ActionSupport.如果前臺有數據傳過來我們對他進行封裝(private getter處理業務要新建一一個返回值是String的無參方法,在struts. xml中配置這個action和其返回值
總結
以上是生活随笔為你收集整理的JavaEE三大框架ssh的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android开发之 SQLite(数据
- 下一篇: java美元兑换,(Java实现) 美元