文章目錄
- 做者提供遠程調試服務
- 做者提供畢業設計模擬答辯視頻
- 聯繫方式VX: zhixing480
問題1:你這個項目用到了SSM/SSH/JSP/JavaWeb,是怎麼體現的?
在解答的過程當中,流程遵循:頁面–>Controller/Action–>Service–>DAO–>數據庫,這期間數據的傳輸,數據的判斷,數據的返送,返送後頁面的返顯,要着重強調。javascript
以SSM的登錄流程爲例html
-
1.login.jsp經過form表單,提交用戶名:username,密碼:password,對應的Action爲:login.action/login.dojava
-
2.經過SpringMVC框架的@RequestMapping註解匹配,從JSP進入Controller/Action中,此時username和password也從頁面傳輸到了Controller/Actionajax
-
3.Controller/Action會調用Service層[業務邏輯處理層],此時數據username和password從Controller/Action傳輸到了Servicesql
-
4.Service繼而調用DAO[數據庫交互,方法定義層],數據再一次從Service傳輸到DAO數據庫
-
5.DAO和數據庫進行交互,將數據融入sql語句中,執行查詢設計模式
-
6.數據庫返回查詢結果到DAO瀏覽器
-
7.DAO返回查詢結果到Service服務器
-
8.Service返回查詢結果到Controller/Action架構
-
9.Controller/Action返回查詢結果到login.jsp,頁面根據返回的結果進行判斷,登錄成功仍是失敗
-
10.總結:數據是一直在傳輸的,爲何設計這麼多層?能夠理解爲一種設計模式,每一層作本身對應的業務,提升效率,邏輯分明。
問題2:你在進行數據庫設計的時候,有什麼技巧嗎?
- 1.幾個關鍵詞不懂的先去查一下,避免老師問的時候不知道:數據字典,三段式,主鍵,外鍵,自增主鍵,E-R圖
- 2.數據庫設計通常會遵循三段式
- 3.數據庫通常會採起外鍵關聯
- 4.數據庫設計通常不採起強制外鍵關聯。這句話和上面不矛盾哦,我會在下面的例子中詳細解釋
舉例
學生表T_STUDENT,教師表T_TEACHER,課程表T_COURCE,表結構分別以下
ID | NAME |
---|---|
1 | 小何 |
ID | NAME |
---|---|
1001 | 王老師 |
1002 | 李老師 |
ID | NAME | STUDENT_ID | TEACHER_ID |
---|---|---|---|
101 | MySQL數據庫 | 1 | 1001 |
102 | 通訊原理 | 1 | 1002 |
上面的學生表,教師表都沒有須要說明的地方,關鍵在於第三張課程表,有兩個外鍵外聯,一個STUDENT_ID,關聯T_STUDENT裏的ID,一個TEACHER_ID關聯T_TEACHER裏的ID,也就是說:T_COURCE中的STUDENT_ID和TEACHER_ID是和T_STUDENT,T_TEACHER的主鍵一致的,但並不採起外鍵關聯。外鍵關聯會產生一種弊端:數據不存在時,後臺數據庫會報錯,如咱們在新增一條課程信息時:「103,電磁場與電磁波,1,1009」,這個1009不存在,就會報錯,致使系統崩潰,不能進行下一次使用。
解決方案:新增以前,針對關聯得ID進行一次查找,如上數據,分別針對ID=1,ID=1009去T_STUDENT,T_TEACHER查找一次,沒有就在前臺頁面提示:「無對應的ID信息,請覈對後再上傳」。
問題3:給我找到XX模塊的代碼,並講解一下[XX流程是怎麼實現的]?
這個問題,對於學習不深,瞭解很少的咱們,應該是最難的一個問題,仍是遵照發給你們的講解視頻中找代碼的思路:
- 1.在瀏覽器"右鍵檢查"咱們須要審查的元素,看它是在一個form裏,仍是Ajax,仍是Href,分別對應下面的訪問路徑
方式一:
<form action="login.action">
方式二:
ajax{ url:/login.action }
方式三:
href="login.action"
-
2.在Eclipse中,ctrl + H,選擇File Search,粘貼上面的login【演示不一樣的模塊,多是不一樣的*.action,複製粘貼*便可】在Containing text裏,File name patterns中輸入 * ,點擊右下角Search
-
3.基於以上,會找到一個Controller/Action裏的代碼,此時便從前臺頁面進入了後臺接口代碼
-
4.進入Controller/Action裏的Service
-
5.進入Service裏的Dao
-
6.經過Dao找到關聯的數據庫語句,有多是hql(SSH),有多是xml(SSM),有可能就是sql(原生語句)
-
7.以上就完成了一次代碼的查找
-
8.總結:右鍵檢查頁面–》查找代碼–》Controller/Action–》Service–》DAO–》DB
問題4:你以爲這個系統還有什麼須要完善的地方?
通常問這個問題的時候,答辯基本結束,具體可參考下面幾個解答
-
1.若是咱們使用的是JSP,可說:後期頁面計劃採用靜態化模板freemarker,節省服務器資源和壓力
-
2.大部分項目都只是本地安裝,可考慮內網穿透或部署到雲服務器,讓全部人均可以訪問咱們的項目
-
3.項目服務器單一,只有一臺Tomcat,可考慮針對Tomcat搭建簡單的平行集羣,加強系統穩定性
-
4.系統併發能力有待提高,後期進一步學習中,考慮使用Nginx進行項目的負載均衡配置
問題5:整個項目你的工做流程是怎麼進行的?
這個問題,傲視通常是想看看這個畢設究竟是不是咱們作的,通常項目的搭建遵循下面的步驟:
-
1.設計數據庫表,遵循三段式,設計出數據字典後,進行數據庫,表的建立
-
2.搭建項目架構[SSM,SSH,Maven]
-
3.建立POJO/Model
-
4.建立DAO/Mapper,並進行測試
-
5.建立Service,並進行測試
-
6.建立Controller/Action,並進行測試
-
7.建立JSP/HTML頁面,並進行先後臺聯調
-
8.完成一個流程
問題6:若是講解的過程當中,遇到不會的怎麼辦?
不要慌張!不要慌張!不要慌張!我在平時工做中,前面寫的代碼,後面再看還須要再看一遍才能回想起當時的邏輯,此時咱們要作的就是:右鍵檢查,找到代碼,看代碼的同時,跟老師說:「這個模塊是最初作的,業務邏輯我須要再看下」,答辯時間很短,通常這個時候老師就會下一個問題,沒有下一個問題,咱們就看看代碼,結合場景,說出代碼自己的業務邏輯。
如:購物車,其業務邏輯通常就是將對應的
-
1.商品添加到購物車,商品數量-1,此時涉及商品表的update,購物車表新增一條記錄,設計購物車表的insert,
-
2.當從購物車變成訂單狀態時,購物車記錄清空,涉及購物車的delete,以及訂單表的insert
問題7:論文降重了多少次?
參考我本身的,初稿一次,終稿20幾回
問題8:論文降重技巧?
通常查重是8-16字重複,判斷爲重複,即標紅。咱們要作的就是打斷連續,或從新組織語言
- 1.重複率大片標紅的地方,添加參考文獻的角標,被標註的一句話不會被查重,重複率多就都是逗號
如:XX,XX,XX,XX,XX[1],則整個XX,XX,XX,XX,XX都不會查重,
可是:XX,XX。XX,XX。XX[1],只有最後一個XX不會查重
-
2.部分實在沒法修改的地方,把文字改爲公式添加進去
答辯過程沒有你們想象的那麼恐怖,我目前接手的這些,所有一次性過答辯,咱們要作的就是:找到代碼。找到代碼就解決了一大半問題。
最後祝你們答辯順利,工做順利,諸事順心。