国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

師生雙選系統(tǒng)后端設計

2021-09-13 00:53周旺吳昌平李賢和
無線互聯(lián)科技 2021年12期
關鍵詞:數(shù)據(jù)庫

周旺 吳昌平 李賢和

摘 要:隨著互聯(lián)網(wǎng)的發(fā)展,越來越多的高校選擇線上填取信息,比如畢業(yè)設計的師生雙選系統(tǒng)。當學生選擇自己的老師之后,老師通過當前被選擇的學生來決定選擇誰,這樣就完成了師生雙選。雙選功能給學生和老師帶來很大的方便,越來越多的高校使用這款軟件,也反映著時代的不斷進步和發(fā)展。

關鍵詞:師生雙選;數(shù)據(jù)庫;SpringBoot;Lombok;MybatisPlus

1 師生雙選系統(tǒng)設計和前端介紹

1.1? 功能介紹

進入登錄界面,有3個選項,分別為學生、老師、管理員。管理員可以新增和修改老師學生的信息,可以查看到老師的被選課情況和學生當前是否已經(jīng)被選擇,如果學生已經(jīng)被選擇,那么可以查看當前學生的成績。進入學生界面可以看見當前老師可選擇的剩余數(shù)量(見圖1),比如選擇了兩位老師之后,再進入兩位老師的界面(見圖2),如果其中一位老師選擇該學生,那么另外的老師不能選擇該學生,這樣就可以實現(xiàn)師生雙選的功能。

師生雙選系統(tǒng)對密碼采用了md5加密處理,保證了數(shù)據(jù)不會被盜取。整個系統(tǒng)使用了攔截器,當請求出現(xiàn)錯誤的時候會把錯誤信息反饋到前端頁面[1-3]。

1.2? 前端設計

相比于傳統(tǒng)的html,css,js,師生雙選系統(tǒng)采用了vue框架,請求方式為ES6的axios請求,UI為Element-ui。相比于傳統(tǒng)的前端設計語言,vue的優(yōu)勢在于方便,性能更好,使用組件能夠極大地提高開發(fā)效率。vue主要的功能有axios、router、element-ui、攔截器、信息校驗,通過這些功能模塊的使用,保證了開發(fā)效率的快速提高。

2 后端設計與實現(xiàn)

2.1? 數(shù)據(jù)庫設計

數(shù)據(jù)庫選擇的版本為5.7版本。該系統(tǒng)主要的數(shù)據(jù)庫有學生、老師、學生-老師、分別表示學生個人信息、老師個人信息、學生和老師的雙選信息。在學生-老師這個表中,設立choose值,表示當choose等于null的時候,該學生沒有被老師選擇,當choose等于1的時候,表示該學生已經(jīng)被其中老師選擇,并且刪除該學生choose值為null的所有信息。

2.2? Lombok設計

在本項目中,采用Lombok提高代碼的使用,讓POJO代碼更加簡潔,不僅在BO對象,在設計模式中也有大量使用。通過使用maven項目將Lombok的相關依賴放入到pom.xml中。相對于傳統(tǒng)的Spring代碼,對每個JavaBean設立Getter,Setter,HashCode等模板代碼,但通過lombok的注解@Data,@Builder就可以代替這些代碼。打印日志時使用@Slf4j,這些極大地提高了代碼開發(fā)效率,但缺點是代碼可讀性和可調式性較低,而且當JDK版本進行升級時,Lombok某些特性就會受到影響。

2.3? MybatisPlus設計

2.3.1 MybatisPlus的介紹

MybatisPlus是Mybatis的增加版本,對Mybatis只增加,不修改,無侵入,損耗小的特性讓MybatisPlus更好地使用在項目當中。通過內置的Mapper和通用的Service可以讓少量的代碼實現(xiàn)大部分的CRUD操作,滿足大多數(shù)接口的數(shù)據(jù)請求。另外還包括主鍵自動生成,支持ActiveRecord模式,內置的分頁插件、代碼生成器、性能分析插件、分頁插件,支持多種數(shù)據(jù)庫語言,包括MYSQL,Oracle等。

2.3.2 MybatisPlus的安裝和配置

通過MybatisPlus的官網(wǎng)地址,將主要相關依賴下載到pom.xml當中,將注意MYSQL的版本號,將數(shù)據(jù)庫的配置信息放入到配置文件application.properties,或者建立yaml文件,也可以將數(shù)據(jù)庫的信息放入其中。

2.3.3 SpringBoot和MybatisPlus實現(xiàn)雙選系統(tǒng)部分功能

先編寫JsonData類,里面包含返回成功的方法和失敗的方法,作用就是將從后端返回的數(shù)據(jù)打包放到JsonData中返回到前端,這樣前端就可以通過接口返回的內容進行判斷。

比如在學生選擇老師的過程中,首先編寫DO類,使用@Data將學生和老師的成員變量進行包裝,實現(xiàn)過程如下:controller層→service層→DO層→Mapper層,其中Mapper層要繼承BaseMapper,通過BaseMapper可以通過內置方法來對數(shù)據(jù)庫進行操作,減少了代碼量,實現(xiàn)CRUD功能。

2.3.4 MybatisPlus分頁插件的使用

分頁在前端頁面中使用次數(shù)很多,在項目文件中建立config文件夾,在文件夾中創(chuàng)建MybatisPlusInterceptor的插件對象,就是通過攔截器將MYSQL的數(shù)據(jù)進行相同批次的攔截。在單元測試當中對分頁進行測試,建立QueryWrapper<>()對象,將參數(shù)信息包裝起來,再通過Page<>對象將數(shù)據(jù)計算出來,就可以獲取當前的頁數(shù)和當前頁內容的大小。

2.3.5 MybatisPlus代碼生成器

代碼生成器是MybatisPlus的核心,在開發(fā)過程中使用次數(shù)很多,大大地提高了寫代碼的效率。相比于Mybatis的代碼生成器,MybatisPlus強大了很多,它可以自動生成Controller,Service,DO,Mapper,Entity,這些文件生成的前提是連接數(shù)據(jù)庫,但也要對該生成的文件進行修改,因為好多都是固定生成,有些配置不能使用,會導致后續(xù)的耦合性高,成本太大,不利于后臺的維護。

2.3.6 MybatisPlus日志打印

日志就是記錄信息。在上線的時候,通過日志打印將用戶信息輸出,這樣當系統(tǒng)進行維護的時候,可以對沒有用的數(shù)據(jù)進行刪除,防止磁盤占滿。在Mybatisplus中,使用@Slf4j可以將數(shù)據(jù)打印出來,而且在單元測試的時候,可以看到CRUD的具體操作過程。

3 后端其他設計

使用IDEA來編譯后端代碼,因為IDEA有很多的自動化代碼補全功能。使用PostMan來對接口進行測試。用maven項目來打包項目,使用maven可以提高開發(fā)效率,比如當引用某個框架的時候,就可以通過導入相關依賴來使用框架,在配置maven項目時,可以將阿里云的項目地址來進行本地下載,這樣在導入依賴的時候可以降低運行的時間。

4 結語

相比如傳統(tǒng)的jsp和javaweb,vue+springboot讓整個系統(tǒng)性能更加穩(wěn)定,一個項目是通過策劃、建模構建出來的,根據(jù)用戶需要不斷地完善功能,所以在開發(fā)過程中,要增加功能來維護線上,對系統(tǒng)整個數(shù)據(jù)進行分配。在項目開始的時候,選擇一個好的框架極其重要,要實現(xiàn)系統(tǒng)高內聚低耦合,讓系統(tǒng)更加完善。

[參考文獻]

[1]鐘茂生,王明文.軟件設計模式及其使用[J].計算機應用,2002(8):34-37.

[2]馬曉虎.基于B/S結構的通用學生管理系統(tǒng)的開發(fā)[J].電腦知識與技術(學術交流),2006(14):22.

[3]黃偉.API服務中間件的設計與實現(xiàn)[D].成都:電子科技大學,2020.

(編輯 何 琳)

猜你喜歡
數(shù)據(jù)庫
超星數(shù)據(jù)庫錄入證
本刊加入數(shù)據(jù)庫的聲明
兩種新的非確定數(shù)據(jù)庫上的Top-K查詢
國外數(shù)據(jù)庫高被引論文排行TOP10
國內主要期刊數(shù)據(jù)庫
陆河县| 彭泽县| 雷山县| 博湖县| 蒲城县| 项城市| 北票市| 甘德县| 焦作市| 洛隆县| 清河县| 绥滨县| 沅陵县| 甘德县| 阜新市| 含山县| 巩义市| 建宁县| 霍林郭勒市| 峡江县| 漳浦县| 奈曼旗| 称多县| 子长县| 板桥市| 盈江县| 仲巴县| 云浮市| 南乐县| 新和县| 武鸣县| 辉南县| 荆门市| 于田县| 黑山县| 恩平市| 卢湾区| 黎川县| 铜陵市| 广州市| 大悟县|