ssm項目:制造裝備物聯(lián)及生產(chǎn)管理平臺(ERP項目)
本人負(fù)責(zé)模塊:人員監(jiān)控和系統(tǒng)管理? ? ??
人員監(jiān)管模塊:
? ? ? ? 部門管理分模塊:
? ? ? ? ? ? 需求:實現(xiàn)增刪改查功能
一、 select查詢所有:
????操作流程:
? ? ? ? ? ? ? ? 通過dao層接口的select注解中添加的sql語句,從Database中取出數(shù)據(jù)

? ? ? ? ? ? ? ? ?service層中定義一個包含查詢所有方法的接口,再添加service接口的實現(xiàn)類,實現(xiàn)類中通過@Autowired注解,取一個dao,在實現(xiàn)類中重寫findAll方法;findAll方法中通過調(diào)用dao的方法實現(xiàn)DB中的方法調(diào)取到service層。

前面調(diào)取DB數(shù)據(jù)的步驟可以通過寫測試類判斷成功與否。
二、新增操作
? ? 操作流程:????
? ? ? ? 首先需要響應(yīng)的是點擊增刪改刷新四個按鈕的通用方法,即請求名為add_judge、update_judge、delete_judge,統(tǒng)一響應(yīng)方式為下圖

點擊添加按鈕后會彈出一個彈窗,顯示的是一個jsp頁面,所以需要添加一個返回department_add字符串的方法,略過;
在彈出的jsp頁面中填寫好我們的部門名稱后就可以執(zhí)行插入數(shù)據(jù)的操作了,總體邏輯是:前臺(直接將提交的數(shù)據(jù)封裝成一個對象)——>Controller用一個方法直接接收其作為參數(shù),再作為serviceImpl的方法,serviceImpl內(nèi)部通過dao的方法判斷其有沒有插入成功。
注意:
此處的dao層和service層的方法的返回值,前者是int,后者是boolean?


為什么能dao層的insert方法是向數(shù)據(jù)庫中插入數(shù)據(jù),卻會返回一個int的數(shù)值類型呢?
? ? 數(shù)據(jù)庫插入數(shù)據(jù)的操作成功,都會返回一個數(shù)值,表示影響了多少行,所以可以以此判斷數(shù)據(jù)插入成功與否。
又因為在前臺傳來的這個請求,它要求的返回值類型為Json,如下圖

所以在controller 中的判斷邏輯如下:

技術(shù)難點和碰到的Bug總結(jié)
? ? 問題1.
????????取出的數(shù)據(jù)部分可以正常顯示,部分?jǐn)?shù)據(jù)的值為null
? ? ? ? 適用范圍:所有存在從Database取數(shù)據(jù)的操作
????????原因:JavaBean的成員變量名稱與數(shù)據(jù)庫里表的屬性名不匹配,導(dǎo)致取不出數(shù)據(jù)。
? ? ? ? ? ? 解決辦法:在dao層的取數(shù)據(jù)的方法之前加一個@Results注解,如下圖

問題2:
? ??如何在前臺Jsp頁面顯示增刪改查按鈕?如下圖

解決辦法:
? ? 在這個界面對應(yīng)的controller中 實現(xiàn)查詢所有的方法中添加如下代碼:
? ? 原理未理解,復(fù)習(xí)下httpServletRequest再回來看

問題3:
BUG
Bug1:
@RequestMapping注解正常,方法也正常編寫,但是返回類型為Json數(shù)據(jù)的請求始終報404找不到資源的異常
原因:響應(yīng)請求類型為Json數(shù)據(jù)的方法,想要正常返回一個Json數(shù)據(jù)集,必須在方法上方加上一個注解:@ResponseBody,這樣才能夠正常的返回Json數(shù)據(jù)集
