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