畢業(yè)設(shè)計(jì)答辯手冊(cè)
1、項(xiàng)目是基于什么技術(shù)開(kāi)發(fā)的?
回答:前端采用的是vue技術(shù),后端采用的是java技術(shù),總的來(lái)說(shuō)是基于springboot+vue進(jìn)行開(kāi)發(fā)的。
2、項(xiàng)目是采用bs模式還是cs模式?
回答:采用的是bs模式,通過(guò)瀏覽器訪問(wèn)的系統(tǒng)屬于bs模式。
3、數(shù)據(jù)庫(kù)中的id為什么不是1開(kāi)始自增?
回答:主鍵策略有很多種形式,自增模式在項(xiàng)目開(kāi)發(fā)中很難保持連續(xù)性和唯一性,正式開(kāi)發(fā)一般用uuid隨機(jī)數(shù)作為id。
4、什么是uuid?
回答:uuid是通用唯一識(shí)別碼(Universally Unique Identifier)的縮寫,是一種軟件建構(gòu)的標(biāo)準(zhǔn)。
5、項(xiàng)目用的是什么數(shù)據(jù)庫(kù)?
回答:用到的是mysql數(shù)據(jù)庫(kù)。
6、數(shù)據(jù)庫(kù)密碼為什么不是明文存儲(chǔ)?
回答:因?yàn)橛脩裘艽a屬于安全級(jí)別比較高的隱私數(shù)據(jù),通過(guò)md5加密保存的,所以是密文形式。
7、開(kāi)發(fā)工具有哪些?
回答:項(xiàng)目前端用vscode開(kāi)發(fā),后端用idea,數(shù)據(jù)庫(kù)mysql采用的是navicat進(jìn)行查看。
8、jdk使用什么版本?
回答:jdk用的是1.8。
9、項(xiàng)目中有用到tomcat服務(wù)器嗎?
回答:spingboot是有用到springboot內(nèi)置的tomcat的。
10、前后端項(xiàng)目是如何進(jìn)行數(shù)據(jù)交互的?
回答:前端項(xiàng)目通過(guò)axios發(fā)起http請(qǐng)求,發(fā)起的api請(qǐng)求地址與后端項(xiàng)目controller的接口地址保持一致,后端接收到請(qǐng)求后,從數(shù)據(jù)庫(kù)查詢到數(shù)據(jù)響應(yīng)給前端。
11、什么是Axios?
回答:Axios是一個(gè)HTTP庫(kù),類似于ajax用于http請(qǐng)求,可以發(fā)送get、post等請(qǐng)求。
12、你的登錄功能如何實(shí)現(xiàn)?
回答:首先用戶在頁(yè)面輸入賬號(hào)密碼,點(diǎn)擊登錄將數(shù)據(jù)發(fā)送給后臺(tái),后臺(tái)接收到數(shù)據(jù)后,查詢?cè)撚脩舯硎欠裨谟脩舯碇?,如果有則提示登錄成功,否則提示登錄失敗。
13、你的注冊(cè)功能如何實(shí)現(xiàn)?
回答:首先用戶在頁(yè)面輸入賬號(hào)密碼以及其它注冊(cè)信息,后臺(tái)先查詢?cè)撚脩羰欠裼凶?cè)過(guò),如果沒(méi)有,就將密碼進(jìn)行md5進(jìn)行加密后進(jìn)行保存,否則提示注冊(cè)失敗,該登錄名已經(jīng)被注冊(cè)過(guò)。
14、項(xiàng)目都是從零開(kāi)始開(kāi)發(fā)的嗎?
回答:開(kāi)發(fā)項(xiàng)目不是從零開(kāi)始開(kāi)發(fā)的,基礎(chǔ)框架是從git上下載來(lái)的,業(yè)務(wù)功能是在基礎(chǔ)框架上需要全部自己開(kāi)發(fā)完成的。
15、開(kāi)發(fā)中遇到問(wèn)題是如何解決的?
回答:通過(guò)在百度上查找相關(guān)技術(shù)博客,知乎等,也有通過(guò)技術(shù)文檔和視頻課程進(jìn)行學(xué)習(xí),網(wǎng)上有很多現(xiàn)成的代碼可以直接拷貝,通過(guò)調(diào)試整合到項(xiàng)目中就可以完成對(duì)應(yīng)功能。
16、項(xiàng)目中如何進(jìn)行條件查詢的?
回答:在每個(gè)service模塊中第一個(gè)方法是用來(lái)設(shè)置查詢條件的,eq匹配精確查詢,like匹配模糊查詢,通過(guò)設(shè)置每個(gè)字段的匹配方式,就可以根據(jù)條件查詢出來(lái)了。

17、項(xiàng)目中如何實(shí)現(xiàn)sql增刪改查的?
回答:在每個(gè)dao模塊中都繼承了BaseMapper就具備了增刪改查的功能,我們只需要將entity模塊中的字段名稱和數(shù)據(jù)庫(kù)表字段名稱保持一致,并且符合駝峰命名的寫法,這樣mybatisPlus就會(huì)映射成對(duì)應(yīng)的sql語(yǔ)句了。

18、你的角色和權(quán)限是如何控制的?
回答:權(quán)限框架用到的是shiro權(quán)限框架,用戶根據(jù)不同角色登錄系統(tǒng)后,可以展示不同的菜單。用戶登錄的時(shí)候首先查詢到用戶信息,根據(jù)用戶信息查詢到用戶所屬的角色,通過(guò)角色查找到用戶關(guān)聯(lián)用戶的權(quán)限。
19、系統(tǒng)架構(gòu)圖是怎樣的?
回答:

20、開(kāi)發(fā)中你遇到了哪些問(wèn)題,最后怎么解決的?
回答:(1)寫接口的時(shí)候,前端和后端接口地址沒(méi)保持一致,導(dǎo)致接口請(qǐng)求不了。解決方法:最終通過(guò)前后臺(tái)接口代碼對(duì)比發(fā)現(xiàn)的。(2)寫前端頁(yè)面的時(shí)候,有時(shí)候代碼已經(jīng)修改了,但是頁(yè)面一直沒(méi)有顯示修改的內(nèi)容。解決方法:瀏覽器緩存的原因,清理瀏覽器緩存。(3)寫sql的時(shí)候用了中文的標(biāo)點(diǎn)符號(hào)導(dǎo)致數(shù)據(jù)庫(kù)查詢不到數(shù)據(jù)。解決方法:寫sql時(shí)需要注意切換英文輸入法。
21、項(xiàng)目運(yùn)行流程是什么?
回答:項(xiàng)目運(yùn)行流程為:?

(1)vue前端頁(yè)面發(fā)起api請(qǐng)求后端controller地址;(2)controller接收前端請(qǐng)求后調(diào)用service的方法;(3)service處理完業(yè)務(wù)邏輯后調(diào)用dao方法;(4)dao對(duì)數(shù)據(jù)庫(kù)進(jìn)行增刪改查的操作。(5)數(shù)據(jù)庫(kù)處理完后把結(jié)果原路返回給前端。
22、如何寫好畢業(yè)論文
(1)看懂核心代碼,業(yè)務(wù)功能模塊module下的代碼是需要看懂的,其它的可以不看。
(2)弄清表的關(guān)系,表字段和表外鍵是需要了解清楚,這樣才能能知道表之間的關(guān)系。
(3)分清用戶權(quán)限,用戶屬于什么角色,登錄后有哪些菜單和按鈕功能,這就是權(quán)限。
(4)熟悉項(xiàng)目流程,熟悉用戶從登錄到退出整個(gè)的操作流程,以及功能的用途。
(5)參考網(wǎng)上論文,掌握以上四點(diǎn),參考知網(wǎng)論文模板,才能更好地寫好論文。
23、如何出色完成答辯
(1)數(shù)據(jù)完整性,頁(yè)面數(shù)據(jù)建議滿一頁(yè)或者幾頁(yè),才能體現(xiàn)你的工作量。
(2)數(shù)據(jù)真實(shí)性,頁(yè)面數(shù)據(jù)盡量真實(shí),不要造隨意造數(shù)據(jù),顯得很敷衍。
(3)流程完整性,一個(gè)用戶從登錄到退出整個(gè)演示流程需要清晰簡(jiǎn)潔,思路清晰。
(4)問(wèn)答流暢性,頁(yè)面對(duì)應(yīng)的代碼能夠快速找到,功能對(duì)應(yīng)的數(shù)據(jù)庫(kù)表能夠找到。
(5)態(tài)度兼容性,保持禮貌謙遜,表現(xiàn)出熱愛(ài)學(xué)習(xí),積極向上的態(tài)度更為重要。