java持久層
⑴ 請問java三層架構,持久層,業務層,表現層,都該怎麼理解和MVC三層模型有什麼
持久層用來固化數據,如常說的DAO層,操作資料庫將數據入庫業務層用來實現整體的業務邏輯如前台獲得了數據,邏輯層去解析這些數據,效驗這些數據等操作表現層很好解釋你現在看到的網頁一些界面都屬於表現層的東西可以用一些Html,jsp,Swing來實現至於mvc么對應的是model(模型)view(視圖)Controller(控制)在javaweb中就很好理解了再XX系統中,前台頁面屬於view貫穿前台後台持久層的一套模型就是model(EJB,Spring來實現)而連接前台後台進行邏輯操作的就是Controller(Struts來實現)
⑵ 請問JAVA三層架構,持久層,業務層,表現層,都該怎麼理解和MVC三層模型有什麼
Model:數據持久層,對資料庫的數據進行處理,主要就是資料庫操作,常見的技術就是JDBC 、 hibernate 、 mybatis這些數據持久層操作的技術和框架。
view:表現層,就是展示給用戶看的那些網頁和界面,常見的就是jsp和html 。
Controller:業務層, 就是在Model 和 view之間進行數據交換,Servlet是最基本的,其它的框架技術 常見的就是Struts 、 SpringMVC 什麼的。
本人主要是學java的,主要了解的就這么多,分三層主要就是將各個功能區分開,方便開發……
⑶ java中什麼是持久層
持久層,又叫數據訪問層。是和資料庫直接打交道的層。
所有增刪改查的操作全在這個層里
⑷ J2EE當前持久層設計常見問題
J2EE當前持久層設計常見問題
當前J2EE項目中,面臨的一個共同問題就是如果控制事務的並發訪問,雖然有些持久層框架已經為我們做了很多工作,但是理解原理,對於我們開發來說還是很有用處的。下面我為大家整理了J2EE當前持久層設計的常見問題,一起來看看吧:
事務並發訪問控制策略
當前J2EE項目中,面臨的一個共同問題就是如果控制事務的並發訪問,雖然有些持久層框架已經為我們做了很多工作,但是理解原理,對於我們開發來說還是很有用處的。
事務並發訪問主要可以分為兩類,分別是同一個系統事務和跨事務訪問的並發訪問控制,其中同一個系統事務可以採取樂觀鎖以及悲觀鎖策略,而跨多個系統事務時則需要樂觀離線鎖和悲觀離線鎖。在討論這四種並發訪問控制策略之前,先需要明確一下資料庫事務隔離級別的問題,ANSI標准規定了四個資料庫事務隔離級別,它們分別是:
讀取未提交(Read Uncommitted)
這是最低的事務隔離級別,讀事務不會阻塞讀事務和寫事務,寫事務也不會阻塞讀事務,但是會阻塞寫事務。這樣造成的一個結果就是當一個寫事務沒有提交的時候,讀事務照樣可以讀取,那麼造成了臟讀的現象。
讀取已提交(Read Committed)
採用此種隔離界別的.時候,寫事務就會阻塞讀事務和寫事務,但是讀事務不會阻塞讀事務和寫事務,這樣因為寫事務會阻塞讀取事務,那麼從而讀取事務就不能讀到臟數據,但是因為讀事務不會阻塞其它的事務,這樣還是會造成不可重復讀的問題。
可重復讀(Repeatable Read)
採用此種隔離級別,讀事務會阻塞寫事務,但是讀事務不會阻塞讀事務,但是寫事務會阻塞寫事務和讀事務。因為讀事務阻塞了寫事務,這樣以來就不會造成不可重復讀的問題,但是這樣還是不能避免幻影讀問題。
序列化(serializable)
此種隔離級別是最嚴格的隔離級別,如果設置成這個級別,那麼就不會出現以上所有的問題(臟讀,不可重復讀,幻影讀)。但是這樣以來會極大的影響到我們系統的性能,因此我們應該避免設置成為這種隔離級別,相反的,我們應該採用較低的隔離界別,然後再採用並發控制策略來進行事務的並發訪問控制)。
延伸閱讀:Java EE容器組成:
Web容器:包括Jsp與Servlet組件,可使用EJB中的組件完成復雜的商務邏輯;
EJB容器:包含組件EJB, EJB規范定義了一個開發和部署分布式商業邏輯的框架;
Applet容器 包含組件Applet,即可使用J2SE開發Applet;
Application Client容器:包含組件Application Client。
現在流行的Java EE容器有很多:Tomcat、JBoss、Resin、Glassfish等等。下面對這四種Java EE容器進行了一番簡單的比對。
1. Tomcat
Tomcat是Apache鼎力支持的Java Web應用伺服器,由於它優秀的穩定性以及豐富的文檔資料,廣泛的使用人群,從而在開源領域受到最廣泛的青睞。
2. Jboss
Jboss作為Java EE應用伺服器,它不但是Servlet容器,而且是EJB容器,從而受到企業級開發人員的歡迎,從而彌補了Tomcat只是一個Servlet容器的缺憾。
3. Resin
Resin也僅僅是一個Servlet容器,然而由於它優秀的運行速度,使得它在輕量級Java Web領域備受喜愛,特別是在互聯網Web服務領域,眾多知名公司都採用其作為他們的Java Web應用伺服器,譬如163、ku6等。
在商用應用伺服器里主要有:Weblogic、Websphere,其中Weblogic我也使用過很長一段時間,當時也只用其當Servlet容器,然而就在同等條件下,在性能及易用性等方面,要比Tomcat優秀很多。
4.glassfish
glassfish是Sun公司推出的Java EE伺服器(Java EE容器),一個比較活躍的開源社區,不斷的通過社區的反饋來提高其的可用性,經過glassfish v1 glassfish v2 到今天的glassfish v3 ,它已經走向成熟。Glassfish是一個免費、開放源代碼的應用服務,它實現了Java EE 5,Java EE 5 平台包括了以下最新技術:EJB 3.0、JSF 1.2、Servlet 2.5、
JSP 2.1、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等。
支持集群,通過內存中會話狀態復制,增強了部署體系結構的可用性與可伸縮性,它對集群有著很好的支持,可以簡單到通過添加機器,就可輕松的提高網站的帶負載能力,在解析能力方面,它對html的吞吐能力與apache伺服器不分上下,就是tomcat所不能比的,支持目錄部署,熱部署,解決了tomcat對熱部署能力的缺陷。
在版本方面做的更加人性化,有開發時用的簡化版,專門用於部署web項目的版本,還要完全符合j2ee標準的版本。
;⑸ java持久層框架就是資料庫框架嗎
你先理解一下持久層的意思吧,看一看mvc架構對你理解持久層比較有幫助,資料庫一般不說資料庫框架,對資料庫操作的框架就是持久層框架
⑹ 請問JAVA三層架構,持久層,業務層,表現層,都該怎麼理解和MVC三層模型有什麼
這個嘛,有一定的聯系啦,也並不是完全是一樣的啦,你首先把mvc理解清楚吧,M是MODEL(模型),V是view(視圖), C是Controller(控制器),而java三層架構,持久層即是數據的持久化操作,就是數據層啦,即是資料庫啦,業務層主要是業務邏輯的處理,負責表示層與數據層(持久層)的數據的傳遞和邏輯處理,就當很接近控制器的功能啦,就可以理解為控制器啦,表示層即是對數據的展示與用戶的輸入,所以呢?就是視圖層啦 1. 用戶看到view2. view ——————————》 controller用戶操作(點擊按鈕等)3. controller——————》model調用model中方法3. model ——————》 controller返回數據到controller5. controller——————————》 view傳數據到view,更新view6.用戶看到更新後的view M——模型層,V——視圖層,C——控制層,持久層——通常用於封裝資料庫連接、數據查詢等操作,
⑺ java有什麼常用開源的框架
java常用開源框架如下:x0dx0a1.Spring Framework 【Java開源JEE框架】x0dx0ax0dx0aSpring是一個解決了許多在J2EE開發中常見的問題的強大框架。 Spring提供了管理業務對象的一致方法並且鼓勵了注入對介面編程而不是對類編程的良好習慣。Spring的架構基礎是基於使用JavaBean屬性的Inversion of Control容器。然而,這僅僅是完整圖景中的一部分:Spring在使用IoC容器作為構建完關注所有架構層的完整解決方案方面是獨一無二的。 x0dx0ax0dx0a2.WebWork 【Java開源Web開發框架】x0dx0ax0dx0aWebWork是由OpenSymphony組織開發的,致力於組件化和代碼重用的拉出式MVC模式J2EE Web框架。x0dx0ax0dx0a3.Struts 【Java開源Web開發框架】x0dx0ax0dx0aStruts是一個基於Sun J2EE平台的MVC框架,主要是採用Servlet和JSP技術來實現的。由於Struts能充分滿足應用開發的需求,簡單易用,敏捷迅速,在過去的一年中頗受關注。Struts把Servlet、JSP、自定義標簽和信息資源(message resources)整合到一個統一的框架中x0dx0ax0dx0a4.Hibernate 【Java開源持久層框架】x0dx0ax0dx0aHibernate是一個開放源代碼的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合x0dx0ax0dx0a5.Quartz 【Java開源調度框架】x0dx0ax0dx0aQuartz是OpenSymphony開源組織在Job scheling領域又一個開源項目,它可以與J2EE與J2SE應用程序相結合也可以單獨使用。Quartz可以用來創建簡單或為運行十個,百個,甚至是好幾萬個Jobs這樣復雜的日程序表。x0dx0ax0dx0a6.Velocity 【Java開源模板引擎】x0dx0ax0dx0aVelocity是一個基於java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象。 當Velocity應用於web開發時,界面設計人員可以和java程序開發人員同步開發一個遵循MVC架構的web站點,也就是說,頁面設計人員可以只關注頁面的顯示效果,而由java程序開發人員關注業務邏輯編碼。Velocity將java代碼從web頁面中分離出來,這樣為web站點的長期維護提供了便利,同時也為我們在JSP和PHP之外又提供了一種可選的方案。 x0dx0ax0dx0a7.IBATIS 【Java開源持久層框架】x0dx0ax0dx0a使用ibatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java對象, 這一層與通過Hibernate 實現ORM 而言基本一致,而對於具體的數據操作,Hibernate 會自動生成SQL 語句,而ibatis 則要求開發者編寫具體的SQL 語句。相對Hibernate等 「全自動」ORM機制而言,ibatis 以SQL開發的工作量和資料庫移植性上的讓步,為系統 設計提供了更大的自由空間。作為「全自動」ORM 實現的一種有益補充,ibatis 的出現顯 得別具意義。
⑻ java持久層設計要考慮哪些問題
持久層設計的目標包括:
- 數據存儲邏輯的分離,提供抽象化的數據訪問介面。
- 數據訪問底層實現的分離,可以在不修改代碼的情況下切換底層實現。
- 資源管理和調度的分離,在數據訪問層實現統一的資源調度(如緩存機制)。
- 數據抽象,提供更面向對象的數據操作。
持久層框架有:
- Hibernate
- MyBatis
- TopLink
- Guzz
- jOOQ
- Spring Data
- ActiveJDBC
⑼ java的DAO層指的是哪一層 持久層又指的是哪一層(hibernate)
DAO層就是持久層,就是操作資料庫的部分。
⑽ 請問JAVA三層架構、持久層、業務層、表現層都該怎麼理解和MVC三層模型有什麼區別
希望還有人關注這個問題。x0dx0a我們常常提到java EE的三層或者四層結構。x0dx0a四層架構:x0dx0a展示層(web層)、業務邏輯層、數據訪問層、信息資源層x0dx0a四層架構在是開發企業應用時使用的非常經典的劃分模式。x0dx0aweb層負責前端展示和用戶請求的處理。mvc是一個設計模式,主要用戶構建用戶界面,目的是把展示邏輯和邏輯分離。web層通常會使用MVC模式進行構建,經常使用的mvc框架包括spring mvc,struts等,都是在web層或者展示層使用的。x0dx0a業務邏輯層一般應用中會有一層service抽象,實現核心業務邏輯,事務控制也在這一層實現。x0dx0a數據訪問層也即層,重點負責資料庫訪問,完成持久化功能。x0dx0a信息資源層主要服務資源的存儲。x0dx0a所以mvc和四層(三層)結構有關系,四層架構是應用的體系(分層)結構,描述了整個應用的一個完整的劃分,而mvc是一個設計模式,通常會用於四層架構的展示層的構建上。希望我能講清楚。