謝邀~
針對這個問題,具體的怎么連接數據庫,怎么增刪查改,這些代碼自己用google一下就可以得到答案,這里就不細說;初學者寫代碼經常會有個問題:把所有代碼都寫在“一層”里,甚至是一個類、一個方法里。
下面我談談自己的建議,如果意見不同,請留言討論。
什么是MVCMVC是Model—View—Controler的簡稱;即模型—視圖—控制;MVC是一種設計模式,它強制性的把應用程序的輸入、處理和輸出分開。
視圖: 視圖是用戶看到并與之交互的界面;視圖向用戶顯示相關的數據,并接受用戶的輸入;視圖不進行任何業務邏輯處理。
模型: 模型表示業務數據和業務處理;相當于JavaBean;一個模型能為多個視圖提供數據。這提高了應用程序的重用性
控制器: 當用戶單擊Web頁面中的提交按鈕時,控制器接受請求并調用相應的模型去處理請求;然后根據處理的結果調用相應的視圖來顯示處理的結果。
MVC的處理過程:首先控制器接受用戶的請求,調用相應的模型來進行業務處理,并返回數據給控制器。控制器調用相應的視圖來顯示處理的結果。并通過視圖呈現給用戶。
代碼如何分層大概知道什么是MVC了吧,其實就是:對代碼分層,各司其職。
現在看看題主的代碼怎么寫,我就按照我的習慣進行一下分層:
JSP能直接訪問數據庫么?技術上是沒問題的,但是我們通常不會這么做。和數據庫完成交互的,一般代碼里面會有兩層:Model和Dao。Model相當于JavaBean,是對數據庫表中數據的承載,Dao就是對數據庫表的操作。這里可以是JDBC,也可以使用ORM框架。
再往上,我一般會設置單獨的Service層,Service會有業務邏輯,可能會調用其他的Service,也可能會調用Dao層中的方法,也可能是調用其他系統的接口。
Service上面,再是Controller層,主要用于接受客戶端的數據,并對數據進行簡單的校驗。(我這樣的寫法,Service層+Controller層 = MVC中的C)
瀏覽器(客戶端)與C層的交互,會使用的View。
當然,靜態變量、配置、工具類等,都會有單獨的包,不在這里討論。
具體的流程所以具體的一個流程是這樣的?例如頁面輸入用戶身份證號,查詢用戶詳細信息:
JSP中輸入身份證號;
Controller層拿到View,對于代碼來說就是個Java對象,這一層可以增加驗證,比如不能輸入空、null或是身份證號規則驗證;
傳到Service層,這一層這個場景下,沒有什么特殊處理;
傳到Dao層,查詢數據庫,返回客戶信息:客戶姓名-張三,客戶性別-M;開始返回;
傳回Service層,把M轉成“男”(不過經常是在SQL中直接關聯字典表了);
傳回Controller層,再傳回JSP展示。
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。