1. 程式人生 > >JAVA EE三層架構:表現層、業務層、資料持久層

JAVA EE三層架構:表現層、業務層、資料持久層

JAVA EE三層架構:

Struts2.0+spring+hibernate三層軟體架構是一個比較成熟的輕量級的軟體架構,基於此開發的B/S模型的軟體至少包含以下三個部分:表示層、業務邏輯層和資料訪問層。由Struts2.0來完成的表示層主要提供瀏覽器模式使用者的操作介面,由spring來完成的業務邏輯層主要對使用者或系統要求的邏輯功能進行統一管理,hibernate資料持久層主要完成物件向關係型資料庫的對映,然後把這三者緊密地整合起來。在軟體開發中的應用。

表現層

表現層主要起展示作用。可採用當前比較成熟的Struts技術。其中主要包含:
a) 展示層(View)
形式:JSP + Struts Taglib
作用:按使用者需求展示資料給使用者
b) 控制層
形式:ActionServlet + Action
作用:接收使用者的請求,並委派給不同的業務邏輯處理;採用Command Pattern,可保證請求和處理的鬆耦合。

業務層

形式:可採用Spring技術,Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。
作用:業務層主要是完成相應的業務邏輯處理。
實現:對上層提供介面,幷包含介面的實現。

資料持久化層

形式:可採用Hibernate技術
作用:資料持久化層主要是完成相關資料的提取、寫入、修改、刪除等操作。
實現:對上層提交介面,幷包含介面的實現。

各層次的關係

表現層的控制 —〉業務層 —〉資料持久化層。

因為內容比較少,下面增加一個sql語句的剖析
sql語句的解析

     if(getSession().createSQLQuery ("SELECT
MAX(ps.version) FROM vrv_paw_antivirusSetting ps,vrv_paw_antivirussoftstatic pc " + " where ps.antivirusName=pc.antivirusName and ps.antivirusName='"+name+"' and pc.installType<>2) .uniqueResult() == null){ return version;
}

首先我們對sql語句進行分析
先把命名別名的提出來 vrv_paw_antivirusSetting as ps , vrv_paw_antivirussoftstatic as pc, max()是sql自動的求最大值函式
進行拆分 select max(ps.version) from ps,pc where ps.antivirusName=pc.antivirusName 就是一個雙表根據name連線查詢 ps.antivirusName=’”+name+”’ 簡單的一個賦值語句 ,name是方法傳進來的引數 pc.installType<>2表示左邊pc.installType不等於2 uniqueResult()是用在已知查詢出來結果唯一就用在最後
下面用別名代替化解sql語句:
select max(ps.version) from ps,pc where ps.antivirusName=pc.antivirusName ps.antivirusName=’”+name+”’ and ps.antivirusName=’”+name+“‘and pc.installType<>2
是不是感覺以後遇到複雜的sql再也不會陌生了