JSP+DAO實現資料庫的CRUD

來源:互聯網
上載者:User

標籤:j2ee設計模式   jsp   dao   mvc   

   今天在看李興華《JavaWeb實戰經典》時候,看到了用JSP+DAO整合起來做了一個資料庫的增刪改查操作。程式不難,但是具備借鑒意義。一般來說javaweb項目主要操作就是操作資料庫,其本質也就是操作資料庫。什麼mvc,javabean從某種角度都是多餘的,如果使用者會寫sql,那要View幹什麼,直接資料庫尋找不就好了?

   一般來說可以實現一個最簡單BS項目,可以有這麼幾個模式:

   1  JSP + JDBC   這樣寫jsp裡面全是java代碼,很不利於維護與擴充。

   2  JSP + DAO   這樣商務邏輯還是寫在jsp裡面了

   3  JSP + Servlet + JDBC(MVC) 這樣好處是可以在跳轉servlet時候調用下層服務,也就是商務邏輯。(JSP頁面美觀化可以使用EL,JSTL)

   4  各種架構組合。Spring,Struts,Hibernate。Spring是接管所有層的架構。Struts是web層的架構,Hibernate是持久層架構。據我所知,持久層成熟產品很多,單就資料連線池這裡有C3P0,Apache 的DBCP,Alibaba Druid(號稱世界上最快的串連池),總之java世界裡,只要想不到,沒有實現不了的。

   5  以上只是單機情況下的架構,如果到了分布式環境以及高並發環境下,設計的複雜程度將跨越一個數量級。分布式環境下的session,cookies怎麼放?怎麼設計分布式session架構?JVM怎麼調優?I/O讀取?.....暫時沒研究。

   畫了一章李興華老師書裡案例的呼叫歷程圖:

   650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/7E/8A/wKioL1cEC9eSqcm4AAGwh9_zSRo740.jpg" title="GotoHibor23875500.jpg" alt="wKioL1cEC9eSqcm4AAGwh9_zSRo740.jpg" />

   例子雖然不難,但是用了兩個Java設計模式以及介面解耦,還用了J2ee設計模式:有DAO模式,還有VO模式(其實就是JavaBean,傳對象可以減少網路開銷)。覺得案例很不錯。也明白了為什麼在相鄰JSP跳轉的時候必須經過一個servlet,而這是這個servlet調用了下層服務。遠比JSP裡面調用要方便和更具備模組化。

   後面又把圖修改了下:

   650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/7E/8E/wKiom1cEFADCVJw8AANbVw9RCnk339.jpg" title="mvc.jpg" alt="wKiom1cEFADCVJw8AANbVw9RCnk339.jpg" />

   可以看出,分層思想在其中起到核心作用。每一層做自己職責內的事情,多管閑事帶來程式複雜度提高。業務一複雜就介面感覺很亂。其實分層是種抽象,邏輯上的分層,實際上就是多寫了幾個JSP和Java檔案而已麼。

   這個程式雖然不難,但是這麼一個程式裡面的設計思想以及設計模式很值得思考。Java中有GOF23設計模式,在J2ee中也有21種設計模式,兩大設計模式派系。

   有圖為證:

   650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/7E/8A/wKioL1cED9aCCjaPAAN6YlGDR-Y881.jpg" title="GotoHibor25538705.jpg" alt="wKioL1cED9aCCjaPAAN6YlGDR-Y881.jpg" />


    看來我又要薦書了:

    650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/7E/8E/wKiom1cED5SwwHtrAADuxLdUzro463.jpg" title="j2ee.jpg" alt="wKiom1cED5SwwHtrAADuxLdUzro463.jpg" />


    又看到幾張好圖:

    650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/7E/8A/wKioL1cEEGiSG1jwAADhksqb7aU534.jpg" title="GotoHibor25804468.jpg" alt="wKioL1cEEGiSG1jwAADhksqb7aU534.jpg" />

   

    睡了,好累!

    寫了這麼久,才1000字,暈!

   

   

JSP+DAO實現資料庫的CRUD

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.