天天看點

【SSM】SSM開發流程及常見問題

                                    SSM開發流程及常見問題

後端開發主要是java代碼的編寫,拿到詳細的任務要求便可開始,開發可分為正向和逆向,

正向從entity到dao 到mapper到service到controller

逆向從業務出發,先寫controller,需要什麼service,便寫什麼service,service需要什麼dao,再去編寫dao,最後到entity。

正向思維較為容易了解,正常情況下一般采用正向的思維去編碼

下面介紹開發的流程

1 首先根據業務,确定實體類(一般與資料庫的表一一對應)和封裝類(Controller傳回的對象類,一般是實體類的部分字段或是實體類的List或者業務衍生出的字段的集合)

2 根據第一步的封裝類,編寫dao以及對應的mapper,dao的邏輯就是為了産生封裝類的屬性(部分屬性可直接産生,還有一部分屬性需要到service層對資料處理才能産生)。

3 根據業務需求,編寫service層,service層對dao層産生的資料進行處理,把封裝類的屬性全部設定進去傳回。

4 最後編寫controller層代碼,需提前與前端确定好URL規範,調用service得到傳回的封裝類,加上@ResponseBody注解傳回

下面簡單介紹一下常見的問題

Entity層隻要足夠了解業務需求,一般不會出錯

Dao層mapper的編寫出現錯誤較多,錯誤多出現在對mybatis文法的不了解,比如

  1. resultType與resultMap的差別
  2. 多參數查詢不用寫parameterType,使用占位符或者使用@Param注解
  3. 出現運作不出錯,但是查詢不到資料可能是中文的編碼問題,在dbcp.xml檔案中在資料庫連接配接URL後加上useUnicode=true&characterEncoding=UTF-8,這個問題可能在本次項目中不會出現,以後要注意
  4. 出現運作不出錯,查詢到某些資料的某個字段為空,可能原因是entity類的字段名于資料庫字段名不比對

總結:dao層寫一步,測一步,編寫mapper之前,把你要拼接的sql語句先拿到資料庫運作一遍,編寫mapper後,使用Junit立即進行測試,如果不報錯,把結果與資料庫端的執行結果進行對比,確定不出現資料丢失等情況,如果報錯,看報錯資訊,一般都是由于sql語句拼接有誤,mybatis解析不了産生。有報錯的bug是友善的,一般通過自己看或者百度就能解決。

Service層編寫就看java的基礎怎麼樣了,如果出現問題,一般也是邏輯出錯,一步步的println就能解決問題(當然dao提供的資料是一定不能錯的,是以測試dao一定要仔細)