網(wǎng)站制作設(shè)計方案行業(yè)網(wǎng)站網(wǎng)址
🙊作者簡介:多年一線開發(fā)工作經(jīng)驗,原創(chuàng)團(tuán)隊,分享技術(shù)代碼幫助學(xué)生學(xué)習(xí),獨立完成自己的網(wǎng)站項目。
- 代碼可以查看文章末尾??聯(lián)系方式獲取,記得注明來意哦~🌹
- 贈送計算機(jī)畢業(yè)設(shè)計600個選題excel文件,幫助大學(xué)選題。
- 贈送開題報告模板,幫助書寫開題報告。
作者完整代碼目錄供你選擇:
- 《Springboot網(wǎng)站項目》400套
- 《ssm網(wǎng)站項目》800套
- 《小程序項目》300套
- 《App項目》500套
- 《Python網(wǎng)站項目》600套
??文章末尾可以獲取聯(lián)系方式,需要源碼或者演示視頻可以聯(lián)系??
?感興趣大家可以點點關(guān)注收藏,后續(xù)更新更多項目資料。?
項目展示
摘??要
社會發(fā)展日新月異,用計算機(jī)應(yīng)用實現(xiàn)數(shù)據(jù)管理功能已經(jīng)算是很完善的了,但是隨著移動互聯(lián)網(wǎng)的到來,處理信息不再受制于地理位置的限制,處理信息及時高效,備受人們的喜愛。本次開發(fā)一套基于Spring Boot的秒殺系統(tǒng),管理員功能有個人中心,用戶管理,商品類型管理,商品信息管理,訂單管理,系統(tǒng)管理。用戶可以注冊登錄,查看商品信息,對秒殺商品購買,秒殺活動結(jié)束的商品不可以購買,可以可以查看訂單?;赟pring Boot的秒殺系統(tǒng)服務(wù)端用Java開發(fā),用Spring Boot框架開發(fā)的網(wǎng)站后臺,數(shù)據(jù)庫用到了MySQL數(shù)據(jù)庫作為數(shù)據(jù)的存儲。這樣就讓用戶用著方便快捷,都通過同一個后臺進(jìn)行業(yè)務(wù)處理,而后臺又可以根據(jù)并發(fā)量做好部署,用硬件和軟件進(jìn)行協(xié)作,滿足于數(shù)據(jù)的交互式處理,讓用戶的數(shù)據(jù)存儲更安全,得到數(shù)據(jù)更方便。
關(guān)鍵字:基于Spring Boot的秒殺系統(tǒng);Spring Boot框架;Java;MySQL
第1章?緒論
1.1?研究背景
互聯(lián)網(wǎng)時代不僅僅是通過各種各樣的電腦進(jìn)行網(wǎng)絡(luò)連接的時代,也包含了移動終端連接互聯(lián)網(wǎng)進(jìn)行復(fù)雜處理的一些事情。傳統(tǒng)的互聯(lián)網(wǎng)時代一般泛指就是PC端,也就是電腦互聯(lián)網(wǎng)時代,但是最近幾十年,是移動互聯(lián)網(wǎng)時代,是向下一步互聯(lián)網(wǎng)時代過度的一個重要時代,下一個互聯(lián)網(wǎng)時代叫物聯(lián)網(wǎng),而移動互聯(lián)網(wǎng)就是一個風(fēng)口,是當(dāng)前社會的主流風(fēng)向。目前移動互聯(lián)網(wǎng)大行其道,人人都手中拿著智能機(jī),手機(jī)手機(jī),手不離機(jī),如果開發(fā)一個用在手機(jī)上的程序軟件,那是多么的符合潮流,符合管理者和客戶的理想。本次就是開發(fā)基于Spring Boot的秒殺系統(tǒng),管理員功能有個人中心,用戶管理,商品類型管理,商品信息管理,訂單管理,系統(tǒng)管理。用戶可以注冊登錄,查看商品信息,對秒殺商品購買,秒殺活動結(jié)束的商品不可以購買,可以可以查看訂單。
1.2 研究現(xiàn)狀
當(dāng)微軟操作系統(tǒng)占領(lǐng)了多半江山,目前不分年齡和種族,使用頻率最高,覆蓋面積最廣。使用人群使用的大多數(shù)都是微軟系統(tǒng)。而微軟又不遺余力的更新Windows版本,從微軟對Windows的市場定位來講,Windows的未來不僅僅是一個操作系統(tǒng),而是讓所有人都擁抱Windows,建立一個屬于Windows的互聯(lián)網(wǎng)生態(tài)圈。目前各大行業(yè),各種類型的軟件陣地轉(zhuǎn)移到了Windows平臺上,包含一些帶商城的免費管理系統(tǒng),或者一些帶廣告的免費應(yīng)用,還有好多游戲之類的應(yīng)用。尤其是經(jīng)過疫情涌現(xiàn)的互聯(lián)網(wǎng)辦公,學(xué)校的互聯(lián)網(wǎng)教學(xué)等,都不斷的刷新人們對于互聯(lián)網(wǎng)的認(rèn)知。
1.3 目的和意義
從經(jīng)濟(jì)成本考慮,手機(jī)的價格比較親民,對于不是必須在電腦上辦公的人員來講,手機(jī)上如果能解決事情就更方便了。
從使用便利角度上講,用手機(jī)上的應(yīng)用處理業(yè)務(wù),不用考慮網(wǎng)線是否存在,不用考慮位置是否變化,依托無處不在的手機(jī)信號就可以在任何有信號的地方處理事務(wù),這是多么的方便和使用,不限制時間,不限制地點,高山平原山谷都可以作為使用的地點而不影響使用的效果。
從操作角度上講,手機(jī)的操作先天性的高于電腦的操作,因為電腦適合處理復(fù)雜的操作,而手機(jī)就是為了簡化操作而生的,方便高效操作簡單。
此次開發(fā)這個基于Spring Boot的秒殺系統(tǒng),不僅僅滿足用戶的需要,也能跟上時代的發(fā)展風(fēng)向,從技術(shù)的角度還是用戶的角度上進(jìn)行開發(fā)都是很有意義的。
1.4 論文研究內(nèi)容
論文設(shè)計的結(jié)構(gòu)也是依照程序開發(fā)的流程進(jìn)展的,也涉及到功能需求分析,功能設(shè)計與實現(xiàn),程序測試等流程。
緒論:講解課題的背景與意義,展示論文結(jié)構(gòu)。
程序開發(fā)技術(shù):講解程序運用到的工具與技術(shù)知識。
系統(tǒng)分析:講解程序的功能需求與開發(fā)可行性問題。
系統(tǒng)設(shè)計:講解程序的功能與數(shù)據(jù)庫的設(shè)計。
系統(tǒng)實現(xiàn):講解程序功能與界面實現(xiàn)。
系統(tǒng)測試:講解程序的功能測試。
第2章?程序開發(fā)技術(shù)
2.1 Mysql數(shù)據(jù)庫
為了更容易理解Mysql數(shù)據(jù)庫,接下來就對其具備的主要特征進(jìn)行描述。
(1)首選Mysql數(shù)據(jù)庫也是為了節(jié)省開發(fā)資金,因為網(wǎng)絡(luò)上對Mysql的源碼都已進(jìn)行了公開展示,開發(fā)者根據(jù)程序開發(fā)需要可以進(jìn)行下載,并做一些改動就可以使用在程序中,可以推動開發(fā)者開發(fā)此程序的開發(fā)進(jìn)度。
(2)SQL數(shù)據(jù)語言在Mysql里面也同樣適用
(3)Mysql不僅可以支持多種編程語言,比如在校期間學(xué)到的C語言,Java語言,以及課后接觸的PHP語言,C++語言等編程語言,它都能很好的支持,而且Mysql的安裝與使用還不挑剔使用平臺。
(4)Mysql可以支持具有千萬條數(shù)據(jù)記錄的數(shù)據(jù)庫,電腦操作系統(tǒng)在進(jìn)行首次安裝或者是重裝時,可以根據(jù)需要選擇安裝32位或64位操作系統(tǒng),這兩種操作系統(tǒng)對表文件的支持力度不一樣,32位的操作系統(tǒng)最多可以存放4GB的表文件,64位操作系統(tǒng)最多可以存放8TB的表文件。
(5)Mysql數(shù)據(jù)庫可以通過GPL協(xié)議進(jìn)行個性化定制,需要開發(fā)者自己對數(shù)據(jù)庫的源代碼進(jìn)行修改,以此開發(fā)出屬于自己的Mysql。
2.2 Java語言
程序開發(fā)語言有很多,但是截至目前,Java語言在IT領(lǐng)域內(nèi),仍然是最被認(rèn)可,以及被廣泛運用的編寫語言之一,因此在選擇此程序的編寫語言上,果斷選擇這門編程語言進(jìn)行程序開發(fā)。可以說經(jīng)過了這么多年的發(fā)展,Java語言不僅在Web開發(fā)領(lǐng)域有了突出性貢獻(xiàn),而且在大數(shù)據(jù)開發(fā)領(lǐng)域以及Windows開發(fā)領(lǐng)域都得到了廣泛運用。由于Java語言擁有較強(qiáng)的擴(kuò)展性能,并且表現(xiàn)出的穩(wěn)定性能,讓其成為大型后端系統(tǒng)開發(fā)語言首選,現(xiàn)如今,Java語言也成為了一種常用的互聯(lián)網(wǎng)平臺的解決方案。
作為一種源碼在網(wǎng)絡(luò)上開源的面向?qū)ο蟮某绦蜷_發(fā)Java語言,由它開發(fā)完成的程序是不可能直接運行在各大平臺的,Java程序的運行,需要在操作平臺上配置其運行的環(huán)境,包括數(shù)據(jù)庫軟件與Java程序開發(fā)軟件等工具的安裝與配置。在Win7,Win10或其它操作平臺上配置Java程序運行環(huán)境,只要環(huán)境配置成功,Java程序都可以運行起來。
2.3?Spring Boot框架簡介
Spring Boot是由Pivotal團(tuán)隊提供的全新框架,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
Spring Boot可以與經(jīng)典的Java開發(fā)工具一起使用或者作為命令行工具安裝。無論如何,需要JavaSDK1.6或者更高版本,本項目用到的是JDK1.8版本。
2.4?B/S結(jié)構(gòu)
B/S架構(gòu)是一種基于互聯(lián)網(wǎng)系統(tǒng)的軟件系統(tǒng)開發(fā)架構(gòu),是現(xiàn)如今在軟件系統(tǒng)開發(fā)中采用非常大量的一種軟件系統(tǒng)結(jié)構(gòu)?,F(xiàn)如今B/S架構(gòu)已經(jīng)被大量使用,打破了C/S結(jié)構(gòu)的結(jié)構(gòu),給基于網(wǎng)絡(luò)結(jié)構(gòu)的軟件系統(tǒng)提供了良好的支持。B/S架構(gòu)伴隨著計算機(jī)網(wǎng)絡(luò)技術(shù)發(fā)展而逐步的發(fā)展和更新。伴隨著互聯(lián)網(wǎng)的進(jìn)一步發(fā)展,就要求大多數(shù)的管理系統(tǒng)要求不僅僅可以在一臺電腦上使用,同時可以在接入互聯(lián)網(wǎng)的其他電腦也可以使用對系統(tǒng)進(jìn)行操作和使用。在這樣的背景下基于B/S架構(gòu)的軟件系統(tǒng)設(shè)計方法得到了越來越大量的使用,基礎(chǔ)部分也在不斷的更新。
B/S架構(gòu)是利用操作系統(tǒng)中的瀏覽器來進(jìn)行使用的,不是一種窗體軟件系統(tǒng),不需要在使用系統(tǒng)的電腦上進(jìn)行安裝。B/S架構(gòu)的運行方式是在遠(yuǎn)程的服務(wù)器上把開發(fā)的軟件系統(tǒng)部署在遠(yuǎn)程的服務(wù)器上,在部署好軟件系統(tǒng)之后就可以實現(xiàn)在任何接入互聯(lián)網(wǎng)的電腦上訪問部署好的軟件系統(tǒng)。B/S架構(gòu)給使用管理系統(tǒng)的用戶帶來極大的便利。
在三層體系結(jié)構(gòu)的B/S(Browser/Server,瀏覽器/服務(wù)器結(jié)構(gòu))系統(tǒng)中,用戶可以通過瀏覽器向分布在網(wǎng)絡(luò)上的眾多服務(wù)器發(fā)出請求。B/S系統(tǒng)極大地簡化了客戶機(jī)的工作量,客戶機(jī)上只需要安裝、配置少量的客戶端運行軟件即可,服務(wù)器將擔(dān)負(fù)大量的工作,對數(shù)據(jù)庫的訪問以及應(yīng)用程序的執(zhí)行都將由服務(wù)器來完成。
B/S架構(gòu)的不斷成熟,主要使用WWW瀏覽器技術(shù),結(jié)合多種瀏覽器腳本語言,用通用瀏覽器需要實現(xiàn)原本復(fù)雜的專有軟件來實現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本,是一種新的軟件架構(gòu)。B/S系統(tǒng)包括:表示邏輯層,控制邏輯層,數(shù)據(jù)展現(xiàn)層,三層是相對獨立又相互關(guān)聯(lián)。
2.5?VUE框架
Vue (讀音 /vju?/,類似于 view) 是一套用于構(gòu)建用戶界面的漸進(jìn)式JavaScript框架。 ??與其它大型框架不同的是,Vue 被設(shè)計為可以自底向上逐層應(yīng)用。Vue 的核心庫只關(guān)注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合。另一方面,當(dāng)與現(xiàn)代化的工具鏈以及各種支持類庫結(jié)合使用時,Vue 也完全能夠為復(fù)雜的單頁應(yīng)用(SPA)提供驅(qū)動。
?Vue 介紹
AngularJS是Vue早期開發(fā)的靈感來源。然而,AngularJS 中存在的許多問題,在 Vue 中已經(jīng)得到解決。 ?
Vue.js是一套構(gòu)建用戶界面的漸進(jìn)式框架。與其他重量級框架不同的是,Vue采用自底向上增量開發(fā)的設(shè)計。Vue 的核心庫只關(guān)注視圖層,并且非常容易學(xué)習(xí),非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅(qū)動采用單文件組件和Vue生態(tài)系統(tǒng)支持的庫開發(fā)的復(fù)雜單頁應(yīng)用。
Vue.js 的目標(biāo)是通過盡可能簡單的 API 實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件。
Vue.js 自身不是一個全能框架——它只聚焦于視圖層。因此它非常容易學(xué)習(xí),非常容易與其它庫或已有項目整合。另一方面,在與相關(guān)工具和支持庫一起使用時 ,Vue.js 也能地驅(qū)動復(fù)雜的單頁應(yīng)用。
特點編輯
易用
在有HTML,CSS,JavaScript的基礎(chǔ)上,快速上手。
靈活
簡單小巧的核心,漸進(jìn)式技術(shù)棧,足以應(yīng)付任何規(guī)模的應(yīng)用。
性能
20kb min+gzip 運行大小、超快虛擬 DOM 、最省心的優(yōu)化。
2.6Java語言介紹
Java語言是簡單的:
Java語言的語法與C語言和C++語言很接近,使得大多數(shù)程序員很容易學(xué)習(xí)和使用。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強(qiáng)制類型轉(zhuǎn)換。特別地,Java語言不使用指針,而是引用。并提供了自動分配和回收內(nèi)存空間,使得程序員不必為內(nèi)存管理而擔(dān)憂。
Java語言是面向?qū)ο蟮?#xff1a;
Java語言提供類、接口和繼承等面向?qū)ο蟮奶匦?#xff0c;為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機(jī)制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,而C++語言只對虛函數(shù)使用動態(tài)綁定??傊?#xff0c;Java語言是一個純的面向?qū)ο蟪绦蛟O(shè)計語言。
Java語言是分布式的:
Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(java net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠(yuǎn)程方法激活)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。
Java語言是健壯的:
Java的強(qiáng)類型機(jī)制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機(jī)制使得Java更具健壯性。
Java語言是安全的:
Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一個安全機(jī)制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡(luò)下載的類具有一個安全防范機(jī)制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機(jī)制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。
Java語言是體系結(jié)構(gòu)中立的:
Java程序(后綴為java的文件)在Java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的分發(fā)。
Java語言是可移植的:
這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴(yán)格規(guī)定了各個基本數(shù)據(jù)類型的長度。Java系統(tǒng)本身也具有很強(qiáng)的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSI C實現(xiàn)的。
Java語言是解釋型的:
如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。在運行時,Java平臺中的Java解釋器對這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過程中需要的類在聯(lián)接階段被載入到運行環(huán)境中。
Java是高性能的:
與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越接近于C++。
Java語言是多線程的:
在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用型構(gòu)為Thread(Runnable)的構(gòu)造子類將一個實現(xiàn)了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機(jī)制(關(guān)鍵字為synchronized)。
Java語言是動態(tài)的:
Java語言的設(shè)計目標(biāo)之一是適應(yīng)于動態(tài)變化的環(huán)境。Java程序需要的類能夠動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類。這也有利于軟件的升級。另外,Java中的類有一個運行時刻的表示,能進(jìn)行運行時刻的類型檢查。
第3章?系統(tǒng)分析
在進(jìn)行系統(tǒng)分析之前,需要從網(wǎng)絡(luò)上或者是商品館的開發(fā)類書籍中收集大量的資料,因為這個環(huán)節(jié)也是幫助即將開發(fā)的程序軟件制定一套最優(yōu)的方案,一旦確定了程序軟件需要具備的功能,就意味著接下來的工作和任務(wù)都是圍繞著這個方案執(zhí)行的,所以系統(tǒng)分析需要對程序功能反復(fù)進(jìn)行思考和研究。
3.1可行性分析
開發(fā)一款系統(tǒng)軟件之前,用戶都會思考這個軟件程序值不值得去開發(fā),把開發(fā)軟件過程中可能涉及到的問題羅列出來,并一個個分析解決,以此來確定開發(fā)這款程序軟件是否有必要,這樣的分析方法也能幫助用戶降低損失,不至于開發(fā)者開發(fā)進(jìn)度進(jìn)行到一半之后,突然遇到問題就放棄對軟件的開發(fā),到那時,資金損失,人力投入等方面就損耗太大了。
3.1.1技術(shù)可行性分析
此次開發(fā)程序使用到的開發(fā)工具有:Mysql等工具,使用的開發(fā)語言是Java,選擇的開發(fā)工具和開發(fā)語言都是在大學(xué)課堂接觸并學(xué)習(xí)過,后期因為自己也比較感興趣,所以也通過網(wǎng)絡(luò)渠道,或借助商品館的開發(fā)類書籍進(jìn)行過軟件開發(fā)知識的系統(tǒng)學(xué)習(xí),讓自己有了一定的知識積累,加上自己在校期間也獨立開發(fā)過一些軟件作品,也積累了一定的開發(fā)經(jīng)驗,所以這次畢設(shè)作品的制作在技術(shù)上無須擔(dān)憂過多。
3.1.2經(jīng)濟(jì)可行性分析
目前的信息時代,對信息的管理趨于高效化,便捷化,這也是計算機(jī)大力普及所帶來的便利,此程序軟件在設(shè)備選用上,依靠的是比較大眾的電腦設(shè)備,對電腦的配置沒有過多要求,一般學(xué)校的計算機(jī)機(jī)房的電腦都可以滿足程序開發(fā)需求,另外,開發(fā)出此款程序,讓信息處理變得高效率,其所帶來的高效益是遠(yuǎn)超程序開發(fā)的低成本的,因此程序開發(fā)的資金投入是可以忽略不計的。
3.1.3操作可行性分析
程序軟件的操作界面是符合大眾審美的需求,功能模塊的布局也是類似于社會上同種類型的軟件,因此使用者操作該軟件可以無需培訓(xùn)就上手。加上現(xiàn)在計算機(jī)入駐各家各戶,大部分人的計算機(jī)操作水平都比較高,這樣的局面也表明開發(fā)出來的程序在操作性問題上也是不用擔(dān)心的。
綜合上面的可行性論證,基本可以確定程序開發(fā)完全可行。
3.2系統(tǒng)運行環(huán)境
程序經(jīng)過編碼可以實現(xiàn)對程序設(shè)計的功能。但是編碼實現(xiàn)時需要一定的配置環(huán)境,包括了電腦上的硬件環(huán)境,也包括在電腦操作系統(tǒng)上安裝的軟件環(huán)境。
硬件環(huán)境:一臺可以正常使用并能夠上網(wǎng)的筆記本或者是電腦,電腦內(nèi)存最低要求4個G,電腦的中央處理器可以配置i5CPU。
軟件環(huán)境:運用的微軟操作系統(tǒng)是比較穩(wěn)定的win7旗艦版系統(tǒng),采用比較熟練的360安全瀏覽器,并在此系統(tǒng)上通過瀏覽器下載安裝好MYSQL軟件等。
3.3系統(tǒng)流程分析
分析程序的流程,涉及到程序的整體操作流程,通過分析與設(shè)計,繪制的程序操作流程圖見下圖。此程序為了確保安全,會讓使用者通過登錄模塊驗證信息,符合要求的使用者才有權(quán)限操作程序。
圖3-1?程序操作流程圖
程序處理數(shù)據(jù)會涉及到數(shù)據(jù)的錄入環(huán)節(jié),繪制的添加流程見下圖。程序錄入數(shù)據(jù)過程中,始終與數(shù)據(jù)庫保持同步。
圖3-2 信息添加流程圖
程序里面的數(shù)據(jù)也會出現(xiàn)錯誤,因此就有相應(yīng)的修改數(shù)據(jù)的功能,繪制的程序修改流程見下圖。此過程也是跟后臺數(shù)據(jù)庫進(jìn)行數(shù)據(jù)同步顯示。
圖3-3信息修改流程圖
程序數(shù)據(jù)存放于數(shù)據(jù)倉庫,有時也會涉及到數(shù)據(jù)刪除,此過程對應(yīng)的流程圖見下圖。數(shù)據(jù)信息被刪除之后,數(shù)據(jù)庫里面也就沒有了該數(shù)據(jù)信息了。
圖3-4?信息刪除流程圖
4.1 系統(tǒng)設(shè)計的原則
在系統(tǒng)設(shè)計過程中,也需要遵循相應(yīng)的設(shè)計原則,這些設(shè)計原則可以幫助設(shè)計者在短時間內(nèi)設(shè)計出符合設(shè)計規(guī)范的設(shè)計方案。設(shè)計原則主要有可靠性,安全性,可定制化,可擴(kuò)展性,可維護(hù)性,可升級性以及客戶體驗等原則。下面就對這些原則進(jìn)行簡要闡述。
可靠性:一個軟件是否可靠決定了其是否被用戶使用,設(shè)計不可靠的軟件,用戶很容易就遺棄;
安全性:程序軟件承擔(dān)了信息的保存與管理等事務(wù),安全性不足的軟件會導(dǎo)致使用者承擔(dān)巨大的損失;所以系統(tǒng)安全也是需要考慮進(jìn)入的;
可定制化:市場環(huán)境從來都不是一直固定不變,面對客戶群體的改變,以及使用環(huán)境的改變,市場需求的改變等因素,程序軟件也要易于調(diào)整以適應(yīng)各種變化;
可擴(kuò)展性:程序軟件在運行使用期間,也需要及時引進(jìn)當(dāng)下的新技術(shù)來進(jìn)行系統(tǒng)優(yōu)化,主要就是在系統(tǒng)功能層面,系統(tǒng)性能層面上進(jìn)行相應(yīng)的擴(kuò)展,只有這樣才能讓系統(tǒng)在實際生活中繼續(xù)占有市場;
可維護(hù)性:程序軟件的維護(hù)需要一定量的資金,不管是排除現(xiàn)有程序錯誤,還是變更軟件的現(xiàn)有需求,都需要在軟件技術(shù)上投入一定資金,所以易于維護(hù)的軟件程序就可以降低技術(shù)層面的資金消耗;
可升級性:程序軟件的投入使用,會面臨用戶數(shù)量增多的情況,用戶對軟件的使用率也會提升,所以系統(tǒng)面臨這種情況,仍然需要通過升級保持性能的合理,這樣才能夠適應(yīng)市場;
客戶體驗:設(shè)計出來的程序軟件在界面上不能夠太復(fù)雜,要遵循界面設(shè)計的原理設(shè)計出簡單,方便操作的功能操作界面,讓用戶易于接受軟件,并樂于使用軟件提供的功能。
4.2 功能結(jié)構(gòu)設(shè)計
在管理員功能模塊確定下來的基礎(chǔ)上,對管理員各個功能進(jìn)行設(shè)計,確定管理員功能的詳細(xì)模塊。繪制的管理員功能結(jié)構(gòu)見下圖。管理員功能有個人中心,用戶管理,商品類型管理,商品信息管理,訂單管理,系統(tǒng)管理。
圖4-2 管理員功能結(jié)構(gòu)圖
4.3 數(shù)據(jù)庫設(shè)計
與功能結(jié)構(gòu)設(shè)計一樣,數(shù)據(jù)庫設(shè)計也是程序開發(fā)不可避免的設(shè)計環(huán)節(jié),數(shù)據(jù)庫設(shè)計最主要的目的就是幫助運行程序存儲相應(yīng)的數(shù)據(jù)信息。數(shù)據(jù)庫設(shè)計包含的內(nèi)容有數(shù)據(jù)表結(jié)構(gòu)的設(shè)計,也包含了數(shù)據(jù)庫E-R圖的設(shè)計。
4.3.1 數(shù)據(jù)庫E-R圖
在繪制E-R圖之前,先要找出數(shù)據(jù)庫的實體,明確各個實體具有的屬性,比如用戶信息這個實體,它具備的屬性包括了用戶的姓名屬性,用戶的密碼屬性,用戶的創(chuàng)建時間屬性等,所以明確了用戶這個實體,以及用戶實體具備的屬性之后,就需要根據(jù)這些信息繪制用戶實體對應(yīng)的實體屬性圖了。繪制軟件選用當(dāng)下認(rèn)可度高,使用范圍廣,操作便利的微軟旗下的Visio工具。
(1)管理員實體屬性圖通過Visio工具繪制,繪制結(jié)果展示如下:
圖4-4?管理員實體屬性圖
(2)用戶實體屬性圖通過Visio工具繪制,繪制結(jié)果展示如下:
圖4-5?用戶實體屬性圖
(3)商品類型實體屬性圖通過Visio工具繪制,繪制結(jié)果展示如下:
4.3.2 數(shù)據(jù)庫表結(jié)構(gòu)
在進(jìn)行這部分設(shè)計之前,需要明白和掌握數(shù)據(jù)類型以及各個數(shù)據(jù)類型的長度范圍等知識,因為在一張具體的數(shù)據(jù)表中,為了方便理解,這里就舉個簡單的例子。比如用戶信息表,這個表格的字段就是用戶這個實體具備的屬性,這時就需要對字段進(jìn)行數(shù)據(jù)類型,以及字段長度的設(shè)置,也要設(shè)置一個主鍵來作為用戶信息表的唯一標(biāo)識。這些都是數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計需要完成的內(nèi)容。根據(jù)基于Spring Boot的秒殺系統(tǒng)的功能設(shè)計以及數(shù)據(jù)庫設(shè)計要求,展示該系統(tǒng)的數(shù)據(jù)表結(jié)構(gòu)。
1購物活動表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | title | String | 標(biāo)題 | 是 |
4 | introduction | String | 簡介 | 是 |
5 | picture | String | 圖片 | 是 |
6 | content | String | 內(nèi)容 | 是 |
2地址表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | userid | Integer | 用戶id | 是 |
4 | address | String | 地址 | 是 |
5 | name | String | 收貨人 | 是 |
6 | phone | String | 電話 | 是 |
7 | isdefault | String | 是否默認(rèn)地址[是/否] | 是 |
3商品信息表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | shangpinbianhao | String | 商品編號 | 是 |
4 | shangpinmingcheng | String | 商品名稱 | 是 |
5 | shangpinleixing | String | 商品類型 | 是 |
6 | pinpai | String | 品牌 | 是 |
7 | guige | String | 規(guī)格 | 是 |
8 | tupian | String | 圖片 | 是 |
9 | shangpinjieshao | String | 商品介紹 | 是 |
10 | thumbsupnum | Integer | 贊 | 是 |
11 | crazilynum | Integer | 踩 | 是 |
12 | clicktime | datetime | 最近點擊時間 | 是 |
13 | reversetime | datetime | 倒計結(jié)束時間 | 是 |
14 | clicknum | Integer | 點擊次數(shù) | 是 |
15 | price | float | 價格 | 是 |
16 | onelimittimes | Integer | 單限 | 是 |
17 | alllimittimes | Integer | 庫存 | 是 |
4收藏表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | userid | Integer | 用戶id | 是 |
4 | refid | Integer | 收藏id | 是 |
5 | tablename | String | 表名 | 是 |
6 | name | String | 收藏名稱 | 是 |
7 | picture | String | 收藏圖片 | 是 |
8 | type | String | 類型(1:收藏,21:贊,22:踩) | 是 |
9 | inteltype | String | 推薦類型 | 是 |
5購物車表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | tablename | String | 商品表名 | 是 |
4 | userid | Integer | 用戶id | 是 |
5 | goodid | Integer | 商品id | 是 |
6 | goodname | String | 商品名稱 | 是 |
7 | picture | String | 圖片 | 是 |
8 | buynumber | Integer | 購買數(shù)量 | 是 |
9 | price | float | 單價 | 是 |
10 | discountprice | float | 會員價 | 是 |
6管理員表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | username | String | 用戶名 | 是 |
3 | password | String | 密碼 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增時間 | 是 |
7商品類型表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | shangpinleixing | String | 商品類型 | 是 |
8在線客服表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | userid | Integer | 用戶id | 是 |
4 | adminid | Integer | 管理員id | 是 |
5 | ask | String | 提問 | 是 |
6 | reply | String | 回復(fù) | 是 |
7 | isreply | Integer | 是否回復(fù) | 是 |
9用戶表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | zhanghao | String | 賬號 | 是 |
4 | mima | String | 密碼 | 是 |
5 | nicheng | String | 昵稱 | 是 |
6 | xingbie | String | 性別 | 是 |
7 | shouji | String | 手機(jī) | 是 |
8 | youxiang | String | 郵箱 | 是 |
9 | money | float | 余額 | 是 |
10商品信息評論表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | refid | Integer | 關(guān)聯(lián)表id | 是 |
4 | userid | Integer | 用戶id | 是 |
5 | nickname | String | 用戶名 | 是 |
6 | content | String | 評論內(nèi)容 | 是 |
7 | reply | String | 回復(fù)內(nèi)容 | 是 |
11訂單表
序號 | 列名 | 數(shù)據(jù)類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | addtime | Date | 創(chuàng)建時間 | 是 |
3 | orderid | String | 訂單編號 | 是 |
4 | tablename | String | 商品表名 | 是 |
5 | userid | Integer | 用戶id | 是 |
6 | goodid | Integer | 商品id | 是 |
7 | goodname | String | 商品名稱 | 是 |
8 | picture | String | 商品圖片 | 是 |
9 | buynumber | Integer | 購買數(shù)量 | 是 |
10 | price | float | 價格/積分 | 是 |
11 | discountprice | float | 折扣價格 | 是 |
12 | total | float | 總價格/總積分 | 是 |
13 | discounttotal | float | 折扣總價格 | 是 |
14 | type | Integer | 支付類型 | 是 |
15 | status | String | 狀態(tài) | 是 |
16 | address | String | 地址 | 是 |
17 | tel | String | 電話 | 是 |
18 | consignee | String | 收貨人 | 是 |
19 | logistics | String | 物流 | 是 |
第5章?系統(tǒng)實現(xiàn)
系統(tǒng)實現(xiàn)這個章節(jié)的內(nèi)容主要還是展示系統(tǒng)的功能界面設(shè)計效果,在實現(xiàn)系統(tǒng)基本功能,比如修改,比如添加,比如刪除等管理功能的同時,也顯示出系統(tǒng)各個功能的界面實現(xiàn)效果,該部分內(nèi)容一方面與前面提到的系統(tǒng)分析,系統(tǒng)設(shè)計的內(nèi)容相呼應(yīng),另一方面也是一個實際成果的展示。
5.1管理員功能實現(xiàn)
5.1.1 用戶管理
管理員可以對用戶信息進(jìn)行添加,修改,刪除,查詢操作。
圖5-1 用戶管理頁面
5.1.2 商品類型管理
管理員可以對商品類型信息進(jìn)行添加,修改,刪除,查詢操作。
圖5-2 商品類型管理頁面
5.1.3 商品信息管理
管理員可以對商品信息進(jìn)行添加,修改,刪除,查詢操作。
圖5-3 商品信息管理頁面
5.1.4 訂單管理
管理員可以查看已支付訂單,可以對訂單進(jìn)行發(fā)貨。
圖5-4 訂單管理頁面
5.2 用戶功能實現(xiàn)
5.2.1 商品信息
用戶可以查看商品信息,可以購買和加入購物車,也可以評論和收藏。
圖5-5 商品信息頁面
5.2.2 購物車
用戶把商品加入到購物車?yán)锖罂梢栽谫徫镘嚴(yán)飳ι唐窋?shù)量更改和刪除。
圖5-6 購物車頁面
5.2.3 確認(rèn)下單
用戶在購物車?yán)稂c擊確認(rèn)下單后到以下界面,這個界面可以對收貨地址修改,可以進(jìn)行支付操作。
圖5-7 確認(rèn)下單頁面
5.2.4 我的收藏
用戶收藏過的商品信息可以在我的收藏里查看查詢和刪除。
圖5-8 我的收藏頁面
程序軟件的開發(fā)階段也包括了系統(tǒng)測試,這個部分就是程序質(zhì)量評定的一個重要環(huán)節(jié),如果說程序通過編碼實現(xiàn)功能之后,不通過測試檢查程序中出現(xiàn)的錯誤,那么程序一旦投入生活中運行使用時,就會產(chǎn)生許多大大小小的錯誤,這個時候去解決問題已經(jīng)晚了,所以一個程序在被交付給使用者使用之前,開發(fā)者就需要使用多種測試方法反復(fù)進(jìn)行測試,也是對程序的一個負(fù)責(zé)表現(xiàn)。程序進(jìn)入系統(tǒng)測試階段,在講究策略進(jìn)行測試時,也需要對時效性進(jìn)行把控。當(dāng)開發(fā)者測試完程序,并解決完測試期間程序產(chǎn)生的各種錯誤時,就需要程序的驗收方來對程序進(jìn)行驗收測試,這也是程序測試的最后一個操作步驟。驗收測試也是對程序的質(zhì)量以及可交付性方面起到關(guān)鍵的作用。
6.1系統(tǒng)測試方法
程序軟件進(jìn)入到系統(tǒng)測試這一個環(huán)節(jié)時,也需要根據(jù)測試的方法進(jìn)行規(guī)范化測試操作,測試方法以及使用順序分別是:首先是單元測試,接著是集成測試和系統(tǒng)測試,最后才是驗收測試,下面將描述系統(tǒng)測試方法。
單元測試:這個部分需要涉及到程序的代碼方面的知識,這個操作環(huán)節(jié)是程序的開發(fā)者進(jìn)行的,當(dāng)程序開發(fā)者通過代碼編寫程序的子功能模塊時,就會進(jìn)行單元級別的測試,通常這個環(huán)節(jié)的測試也會被稱作是白盒測試。
集成測試:這個步驟的前提是程序的所有功能模塊都已完成開發(fā),這個時候需要把程序所有的子功能模塊集成到一起,形成一個完整的系統(tǒng),此測試的主要目的就是檢查這些功能模塊集成在一起時的兼容性,也就是檢測它們是否按照預(yù)期正常運行。
系統(tǒng)測試:當(dāng)程序測試進(jìn)入到這個環(huán)節(jié)時,就意味著程序測試工作已經(jīng)進(jìn)行到一半了,這個部分的測試也有另外一個名字,稱作是黑盒測試,主要用于測試系統(tǒng)的功能是否按照預(yù)期進(jìn)行運行。
驗收測試:開發(fā)的程序已經(jīng)通過了前面的單元測試,集成測試,以及系統(tǒng)測試環(huán)節(jié)時,就需要進(jìn)行驗收了,這個環(huán)節(jié)的操作用戶就是程序面臨的最終用戶或者是客戶。測試主要目的就是驗證開發(fā)完成的程序是不是能夠符合用戶對其的期望,以及程序的所有功能是否符合用戶的真正需求。
6.2 系統(tǒng)測試分析
基于Spring Boot的秒殺系統(tǒng)在經(jīng)歷了一系列測試步驟之后,可以確定該系統(tǒng)可以交付給使用者進(jìn)行使用了,在系統(tǒng)的功能主界面上可以清晰展示各個功能,并且各個功能的超鏈接也是正常跳轉(zhuǎn),能夠?qū)崿F(xiàn)用戶要求的功能。在程序的穩(wěn)定性,可靠性,驗證邏輯以及操作流程方面跟需求文檔很貼合。所以,開發(fā)完成的基于Spring Boot的秒殺系統(tǒng)符合用戶需求,它投入運行使用帶給用戶的便利是顯而易見的。
結(jié) ?論
基于Spring Boot的秒殺系統(tǒng)的開發(fā)制作,從題目確定到成品完成,自己投入的精力與心血是非常多的。這也是我第一次使用Spring Boot框架語言,開發(fā)的這個比較簡單的基于Spring Boot的秒殺系統(tǒng)。
基于Spring Boot的秒殺系統(tǒng)開發(fā)過程中,自己之前覺得比較抽象的許多門課程,例如數(shù)據(jù)庫原理,軟件工程,動態(tài)網(wǎng)站開發(fā)等課程開始變得很清晰,只有自己獨立開發(fā)程序,才會覺得這些開發(fā)類的課程在實踐中具有的重要作用。為了讓自己設(shè)計的作品能夠順利的完成,我把所學(xué)知識全部運用在程序的開發(fā)流程中,包括了程序的需求分析環(huán)節(jié),程序的編碼環(huán)節(jié),程序的測試環(huán)節(jié)等,讓程序軟件在開發(fā)周期內(nèi)完成制作,并能夠保證程序質(zhì)量達(dá)標(biāo),力求程序開發(fā)流程規(guī)范化,程序?qū)?yīng)的配套文檔標(biāo)準(zhǔn)化。
獨立開發(fā)程序期間,才會發(fā)現(xiàn)有許多知識都是現(xiàn)學(xué)現(xiàn)用得來的,畢竟大學(xué)期間所學(xué)知識比較有限,專業(yè)知識掌握得比較淺顯,這也給自己制造了許多麻煩,比如程序開發(fā)期間遇到的中文亂碼問題,程序?qū)?yīng)數(shù)據(jù)庫的數(shù)據(jù)安全問題,程序開發(fā)中框架的使用問題等,這些問題都需要隨時去翻閱書籍,或通過百度瀏覽器等方式尋找解決辦法,這也耽誤了許多程序開發(fā)的寶貴時間,后期我也通過對周邊同學(xué)的請教,以及指導(dǎo)老師的悉心指導(dǎo),讓我找到了程序開發(fā)的相關(guān)技巧,也積累了一定的知識量,慢慢地糾正了許多不該犯的錯誤。也推動了我的程序開發(fā)進(jìn)程。
基于Spring Boot的秒殺系統(tǒng)現(xiàn)已完成了開發(fā),除了基本功能可以符合用戶需求外,在頁面設(shè)計層面上沒有融入更多的設(shè)計元素,需要從美學(xué)角度進(jìn)行優(yōu)化,另外在程序的代碼層面,也有許多重合部分,需要進(jìn)行整理歸類,讓代碼變得更加的簡潔。
實踐出真知,但是知識也是通過實踐變得更加深刻,這次作品制作,讓自己的專業(yè)知識水平與解決問題的能力得到了提高。也讓自己更加明白活到老學(xué)到老的真正含義。
致??謝
大學(xué)幾年下來,我不僅學(xué)到了計算機(jī)方面的專業(yè)知識,也學(xué)會了許多有關(guān)做人,有關(guān)做事的道理。在現(xiàn)在這個緊張而又重要的時刻,我要向我的大學(xué)老師們表示由衷的感謝,也需要向我的論文指導(dǎo)老師表達(dá)我最真摯的謝意。指導(dǎo)老師在我論文指導(dǎo)期間一直都是不厭其煩的進(jìn)行指導(dǎo),包括論文的題目選擇,論文文章的結(jié)構(gòu),以及系統(tǒng)開發(fā)的功能設(shè)計等問題,都是指導(dǎo)老師的及時幫助,才讓我有解決問題的信心與解決思路,正因為如此,我才可以在短時間內(nèi)得到成長,并成功完成畢業(yè)設(shè)計的作品制作與論文編寫。短短幾個月時間,指導(dǎo)老師的無私的奉獻(xiàn)精神,以及指導(dǎo)老師的愛崗敬業(yè)的教學(xué)態(tài)度,讓我也開始重新認(rèn)識所學(xué)的專業(yè)知識,并有信心將所學(xué)知識與現(xiàn)實問題相結(jié)合,并提供一個可靠有效的解決方案。大學(xué)校園是溫暖而又美好的,大學(xué)同學(xué)的無私幫助與建議,也讓我的論文寫作有了更多的思路,在此,我對我的大學(xué)同學(xué)一并表示感謝。我的成長與寶貴的學(xué)習(xí)機(jī)會也離不開大學(xué)校園這個平臺,感謝大學(xué)校園給了我更多學(xué)習(xí)的機(jī)會,讓我結(jié)識到許多大學(xué)同學(xué)和優(yōu)秀的校園老師,讓我的大學(xué)生活變得如此豐富多彩!
參考文獻(xiàn)
[1]劉湘煜.課堂考勤系統(tǒng)移動端的設(shè)計與實現(xiàn)[J].現(xiàn)代計算機(jī),2019(15):87-92.
[2]趙朋.基于HTML5的移動考勤App開發(fā)[J].科技創(chuàng)新導(dǎo)報,2019,16(09):4-5.
[3]蘭旭輝,熊家軍,鄧剛.基于MySQL的應(yīng)用程序設(shè)計[J].計算機(jī)工程與設(shè)計,2018(03):442-443+468.
[4]張偉麗,江春華,魏勁超.MySQL復(fù)制技術(shù)的研究及應(yīng)用[J].計算機(jī)科學(xué),2015,39(S3):168-170.
[5]劉學(xué)芬,孫榮辛,夏魯寧,李偉.面向MySQL的安全隱患檢測方法研究[J].信息網(wǎng)絡(luò)安全,2016(09):1-5.
[6]孫志鋒,徐鏡春,厲小潤.數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫技術(shù)[M].浙江大學(xué)出版社,2016.
[7]劉明清.Java語言的特點與C++語言的比較[J].信息技術(shù)與信息化,2018(11):151-153.
[8]田智.基于計算機(jī)軟件開發(fā)的JAVA編程語言分析[J].硅谷,2017,7(19):59+37.
[9]孫磊,賈寶強(qiáng),曾翠翠.淺議Java軟件開發(fā)中幾種誤區(qū)[J].網(wǎng)絡(luò)與信息,2018,26(07):52.
[10]付博文.計算機(jī)軟件開發(fā)的JAVA編程語言及其實際應(yīng)用[J].南方農(nóng)機(jī),2018,49(23):158.
[11]楊釗.淺析設(shè)計管理在APP開發(fā)中的應(yīng)用[J].大眾文藝,2019(20):103-104.
[12]韓曙亮.基于安卓系統(tǒng)的App開發(fā)技術(shù)分析與研究[J].商訊,2019(23):5-6.
[13]邱永中.Spring Boot框架平臺的移動APP開發(fā)方法探討[J].信息與電腦(理論版),2019(09):85-86.
[14]王欣.基于用戶體驗式的APP開發(fā)方法[J].中國新技術(shù)新產(chǎn)品,2019(03):40-41.
[15]田偉,曾琪,李玲香,李艷芳.一種實用的Spring Boot框架數(shù)據(jù)安全恢復(fù)方法[J].電腦編程技巧與維護(hù),2020(02):112-114.
[16]Fuad,Ammar,Erwin,Alva,Ipung,Heru Purnomo et al.Processing performance on Apache Pig,Apache Hive and MySQL cluster[C].//2014 International conference on information,communication technology and system:ICTS 2014,24 September 2014,Surabaya,Indonesia.2018:297-302.
[17]Narayanan Venkateswaran,Suvamoy Changder.Building a Pluggable Sharding Subsystem For MySQL[C].//22nd International conference on software engineering and data engineering:SEDE-2013,Los Angeles,California,USA,25-27 September 2013.2013:85-90.
[18]Konstantins Gusarovs.An Analysis on Java Programming Language Decompiler Capabilities[J].Applied Computer Systems,2018,23(2).
核心代碼展示
/*** 登錄相關(guān)*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登錄*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("賬號或密碼不正確");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注冊*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用戶已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密碼重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("賬號不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密碼已重置為:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 獲取用戶的session用戶信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用戶已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);userService.updateById(user);//全部更新return R.ok();}/*** 刪除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}
項目推薦
【計算機(jī)畢業(yè)設(shè)計】各項技術(shù)選題匯總
【計算機(jī)畢業(yè)設(shè)計】基于Springboot的網(wǎng)上購物商城銷售系統(tǒng)
【計算機(jī)畢業(yè)設(shè)計】開題報告模板2
【計算機(jī)畢業(yè)設(shè)計】任務(wù)書案例2
【網(wǎng)站項目】基于springboot的在線考試系統(tǒng)
【網(wǎng)站項目】基于springboot的4S店車輛管理系統(tǒng)
【軟件設(shè)計】基于python的高校資產(chǎn)管理系統(tǒng)
【網(wǎng)站項目】python009基于推薦算法的電影推薦系統(tǒng)
【網(wǎng)站項目】基于Springcloud的分布式架構(gòu)網(wǎng)上商城
??文章末尾可以獲取聯(lián)系方式,需要源碼,高清圖片,演示視頻可以聯(lián)系(不開源)??
?感興趣大家可以點點關(guān)注收藏,后續(xù)更新更多項目資料。?