日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SSM垃圾分类小助手毕业设计-附源码191356

發(fā)布時間:2023/12/29 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSM垃圾分类小助手毕业设计-附源码191356 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

隨著現(xiàn)在網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)絡(luò)的應(yīng)用在各行各業(yè)當(dāng)中它很快融入到了許多分類管理之中,他們利用網(wǎng)絡(luò)來做這個垃圾分類小助手,隨之就產(chǎn)生了“湖師校園垃圾分類管理”,這樣就讓垃圾分類小助手更加方便簡單。

對于本垃圾分類小助手的設(shè)計(jì)來說,通過科學(xué)的管理方式、便捷的服務(wù)提高了工作效率,減少了數(shù)據(jù)存儲上的錯誤和遺漏。教材管理系統(tǒng)使用Java語言,采用基于 MVVM模式的SSM技術(shù)進(jìn)行開發(fā),使用 Eclipse 2017 CI 10 編譯器編寫,數(shù)據(jù)方面主要采用的是微軟的MySQL關(guān)系型數(shù)據(jù)庫來作為數(shù)據(jù)存儲媒介,配合前臺HTML+CSS 技術(shù)完成系統(tǒng)的開發(fā)。具體根據(jù)垃圾分類小助手的現(xiàn)狀來進(jìn)行開發(fā)的,具體根據(jù)用戶需求實(shí)現(xiàn)垃圾分類小助手網(wǎng)絡(luò)化的管理,各類信息有序地進(jìn)行存儲,實(shí)現(xiàn)功能:首頁、站點(diǎn)管理(輪播圖、公告欄)用戶管理(管理員、用戶注冊)內(nèi)容管理(環(huán)保資訊、新聞分類列表、垃圾分類小測試)更多管理(垃圾信息、商城兌換、兌換記錄、分類信息、我的積分)等功能。

本論文主要講述了垃圾分類小助手開發(fā)背景,該系統(tǒng)它主要是對需求分析和功能需求做了介紹,并且對系統(tǒng)做了詳細(xì)的測試和總結(jié)。具體從業(yè)務(wù)流程、數(shù)據(jù)庫設(shè)計(jì)和系統(tǒng)結(jié)構(gòu)等多方面的問題。望能利用先進(jìn)的計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)技術(shù)來改變目前的垃圾分類小助手管理狀況,提高管理效率。

關(guān)鍵詞:垃圾分類小助手;Java語言;?

SSM garbage sorting assistant

Abstract

With the rapid development of the network, the application of the network is in all walks of life. It quickly integrates into many classification management. They use the network to do this little assistant of garbage classification, and then there is "Hushi campus garbage classification management", which makes the little assistant of garbage classification more convenient and simple.

For the design of this garbage classification assistant, through scientific management and convenient service, the work efficiency is improved and the errors and omissions in data storage are reduced. The textbook management system uses Java language, adopts SSM technology based on MVVM mode for development, and is written with eclipse 2017 CI 10 compiler. In terms of data, it mainly uses Microsoft's MySQL relational database as the data storage medium, and cooperates with the foreground HTML + CSS technology to complete the development of the system. Specifically, it is developed according to the current situation of the garbage classification assistant. Specifically, the network management of the garbage classification assistant is realized according to the needs of users, and all kinds of information are stored orderly to realize the functions: home page Site management (rotation chart, bulletin board), user management (administrator, user registration), content management (environmental protection information, news classification list, garbage classification test) more management (garbage information, mall exchange, exchange records, classification information, my points) and other functions.

This paper mainly describes the development background of garbage classification assistant. The system mainly introduces the requirements analysis and functional requirements, and makes a detailed test and summary of the system. From the aspects of business process, database design and system structure. It is hoped that the advanced computer technology and network technology can be used to change the current management status of garbage classification assistant and improve the management efficiency.

Key words:?Garbage sorting assistant; Java language;

目 ?錄

第1章?緒論

1.1?研究背景與意義

1.2?開發(fā)現(xiàn)狀

1.3?主要工作及論文結(jié)構(gòu)

第2章 相關(guān)技術(shù)介紹

2.1微信開發(fā)者工具

2.2小程序框架以及目錄結(jié)構(gòu)介紹

2.3?B/S結(jié)構(gòu)

2.4?Mysql數(shù)據(jù)庫

2.5?SSM框架

2.5 SSM框架各層關(guān)系

第3章 系統(tǒng)分析

3.1?可行性分析

3.1.1?技術(shù)可行性

3.1.2?經(jīng)濟(jì)可行性

3.1.3?社會可行性

3.2系統(tǒng)功能分析和描述

3.3性能分析 6

3.4系統(tǒng)操作流程 7

3.4.1添加信息流程 7

3.4.2操作流程 7

3.4.3刪除信息流程 8

第4章 系統(tǒng)設(shè)計(jì)

4.1系統(tǒng)架構(gòu)設(shè)計(jì)

4.2開發(fā)流程設(shè)計(jì)

4.3數(shù)據(jù)庫設(shè)計(jì)

4..3.1實(shí)體ER 13

4.3.2數(shù)據(jù)表 14

第5章?系統(tǒng)實(shí)現(xiàn)

5.1?數(shù)據(jù)庫連接模塊的實(shí)現(xiàn)

5.2?登錄模塊的實(shí)現(xiàn) 16

5.3注冊模塊的實(shí)現(xiàn)

5.4環(huán)保資訊模塊的實(shí)現(xiàn) 23

5.5兌換記錄模塊的實(shí)現(xiàn) 24

5.6商城兌換模塊的實(shí)現(xiàn) 26

5.7垃圾信息管理模塊的實(shí)現(xiàn) 28

5.8我的積分管理模塊的實(shí)現(xiàn) 30

第6章?系統(tǒng)測試 31

6.1?測試環(huán)境 31

6.2?測試目標(biāo)

6.3?功能測試 31

6.4?測試結(jié)果 32

第7章?總結(jié)與展望 34

參考文獻(xiàn) 35

致謝 37

  • 緒論
  • 研究背景與意義
  • 網(wǎng)絡(luò)的快速發(fā)展從根本上更改了世界各組織的管理方式,自二十世紀(jì)九十年代開始,我國的政府、企事業(yè)等學(xué)校就設(shè)想可以通過互聯(lián)網(wǎng)系統(tǒng)來進(jìn)行管理信息。由于以前存在各方面的原因,比如網(wǎng)絡(luò)普及度低、用戶不接受、互聯(lián)網(wǎng)的相關(guān)法律法規(guī)也不夠完善、開發(fā)技術(shù)也不夠成熟等,阻礙了互聯(lián)網(wǎng)在各大機(jī)構(gòu)中的發(fā)展速度。進(jìn)入二十一世紀(jì)以后,我國經(jīng)濟(jì)有了快速的發(fā)展,限制機(jī)構(gòu)管理的各個難題逐一被解決,國內(nèi)各大機(jī)構(gòu)都加入到了電子信息化的管理模式中來。

    以往的垃圾分類相關(guān)信息管理,都是工作人員手工統(tǒng)計(jì)。這種方式不但時效性低,而且需要查找和變更的時候很不方便。隨著科學(xué)的進(jìn)步,技術(shù)的成熟,計(jì)算機(jī)信息化也日新月異的發(fā)展,社會也已經(jīng)深刻的認(rèn)識,計(jì)算機(jī)功能非常的強(qiáng)大,計(jì)算機(jī)已經(jīng)進(jìn)入了人類社會發(fā)展的各個領(lǐng)域,并且發(fā)揮著十分重要的作用。本系統(tǒng)利用網(wǎng)絡(luò)溝通、計(jì)算機(jī)信息存儲管理,有著與傳統(tǒng)的方式所無法替代的優(yōu)點(diǎn)。比如計(jì)算檢索速度特別快、可靠性特別高、存儲容量特別大、保密性特別好、可保存時間特別長、成本特別低等。在工作效率上,能夠得到極大地提高,延伸至服務(wù)水平也會有好的收獲,有了網(wǎng)絡(luò),垃圾分類小助手的各方面的管理更加科學(xué)和系統(tǒng),更加規(guī)范和簡便。

  • 國內(nèi)外研究現(xiàn)狀
  • 隨著綠色設(shè)計(jì),可持續(xù)設(shè)計(jì)的發(fā)展,節(jié)約資源,保護(hù)環(huán)境成為了時代的主題,而有效的垃圾分類回收正是實(shí)現(xiàn)節(jié)約資源保護(hù)環(huán)境的途徑之一,垃圾分類回收處理系統(tǒng)顯得日益重要起來,現(xiàn)在全國截至2014年7月9日,全國高等學(xué)校(不含獨(dú)立學(xué)院)共計(jì)2542所,其中:普通高等學(xué)校2246所(包括民辦普通高校444所)﹔成人高等學(xué)校296所〈包括民辦成人高校1所)。通過網(wǎng)上的一些調(diào)研發(fā)現(xiàn)很多的社區(qū)垃圾分類與回收系統(tǒng)做的并不好。只有很少的社區(qū)有一定程度的垃圾分類與回收,整個系統(tǒng)也是相當(dāng)?shù)幕靵y。

    一些發(fā)達(dá)國家,網(wǎng)絡(luò)發(fā)展比較快,已經(jīng)很大程度上完成了從人工到計(jì)算機(jī)管理的轉(zhuǎn)變。我國計(jì)算機(jī)應(yīng)用起步比較晚,而且發(fā)展區(qū)域不平衡,還有很多地區(qū)或?qū)W校使用傳統(tǒng)的方式進(jìn)行管理,但是目前計(jì)算機(jī)發(fā)展較快,包括網(wǎng)絡(luò)也已經(jīng)普及,很多學(xué)校和用戶也開始慢慢接觸網(wǎng)絡(luò)管理系統(tǒng)。縱觀這些系統(tǒng)主要有以下幾個特點(diǎn):

    (1)先進(jìn)性:實(shí)現(xiàn)網(wǎng)絡(luò)化管理。

    (2)通用性:同一行業(yè)基本都能使用。

    (3)方便性:通過網(wǎng)絡(luò)就能完成管理工作。

    (4)及時性:信息更新及時。

    (5)可擴(kuò)展性:可根據(jù)需要進(jìn)行模塊的增加。

    (6)安全性:對企業(yè)、用戶等信息進(jìn)行加密。

    截至如今,互聯(lián)網(wǎng)已經(jīng)深入人們的生活,智能手機(jī)、筆記本電腦等已經(jīng)是人們獲取信息的主要工具,這是一個溝通無限的時代,因此,利用網(wǎng)絡(luò)來進(jìn)行校園垃圾分類管理系統(tǒng)的管理也成為大勢所趨。

  • 主要工作及論文結(jié)構(gòu)
  • 本文的主要工作是研究如何將計(jì)算機(jī)和信息管理進(jìn)行有機(jī)結(jié)合,從而利用Java語言以及Mysql數(shù)據(jù)庫技術(shù)在Dreamweaver中實(shí)現(xiàn)了系統(tǒng)的功能模塊,切實(shí)的開發(fā)出一套貼近垃圾分類小助手的實(shí)際,有效管理垃圾分類小助手。

    論文結(jié)構(gòu)如下:

    第一章緒論:主要對垃圾分類小助手?的開發(fā)背景,研究現(xiàn)狀,目的,及意義進(jìn)行了分析。

    第二章開發(fā)技術(shù)及軟件:主要把系統(tǒng)開發(fā)工具進(jìn)行介紹,另外講解開發(fā)系統(tǒng)所用到的一些特殊功能技術(shù)。

    第三章系統(tǒng)分析:主要是對垃圾分類小助手進(jìn)行需求分析,以及對其數(shù)據(jù)流程與功能進(jìn)行分析。

    第四章系統(tǒng)設(shè)計(jì):主要根據(jù)系統(tǒng)需求對系統(tǒng)的設(shè)計(jì)進(jìn)行介紹,以及對數(shù)據(jù)的開發(fā)與功能模塊設(shè)計(jì)的過程。

    第五章系統(tǒng)實(shí)現(xiàn):本章主要結(jié)合系統(tǒng)界面截圖,介紹了系統(tǒng)各個功能實(shí)現(xiàn)的結(jié)果。

    第六章系統(tǒng)測試:本章系統(tǒng)進(jìn)行功能模塊的測試,撰寫測試用例,確保系統(tǒng)各大功能準(zhǔn)確無誤。

    第七章總結(jié)與展望:對整個論文的研究內(nèi)容進(jìn)行總結(jié),概括整個論文的特點(diǎn),指出不足之處,為下步深究指明方向。

  • 相關(guān)技術(shù)介紹
  • 微信開發(fā)者工具
  • 微信開發(fā)者工具現(xiàn)在已經(jīng)被小程序開發(fā)團(tuán)隊(duì)開發(fā)運(yùn)行,目前微信開發(fā)者工具任然在不斷的完善中,在開發(fā)小程序時經(jīng)常要不斷的更新。可以使用微信掃碼登陸開發(fā)者工具,開發(fā)者工具將使用這個微信帳號的信息進(jìn)行小程序的開發(fā)和調(diào)試。

    機(jī)型選擇:小程序以智能手機(jī)的屏幕尺寸為設(shè)計(jì)標(biāo)準(zhǔn),進(jìn)行切圖。

    預(yù)覽界面:寫好視圖布局后點(diǎn)擊編譯,用來刷新視圖界面。

    控制臺:方便調(diào)試打印輸出信息。

    上傳代碼:上傳到騰訊服務(wù)器,提交審核必經(jīng)步驟。上傳代碼時可以填寫版本號和備注信息。

    資源文件:一般可以在資源文件進(jìn)行對應(yīng)項(xiàng)目的文件目錄的斷點(diǎn)調(diào)試。

    顯示遠(yuǎn)程調(diào)試:手機(jī)端和PC端開發(fā)工具聯(lián)調(diào)對用戶而言是非常實(shí)用的。

    本地?cái)?shù)據(jù)存儲:顯示的是本地存儲的數(shù)據(jù)。

    視圖調(diào)試:標(biāo)組件以子父層級結(jié)構(gòu)呈現(xiàn),方便調(diào)試。

    微信限制在2M 以內(nèi)的代碼體積;開發(fā)中一般不校驗(yàn)合法域名信息;小程序后臺要做配置服務(wù)器域名。

    以上就是在開發(fā)過程中微信開發(fā)者工具常用到的功能,微信開發(fā)者工具也在不斷的完善。

  • 小程序框架以及目錄結(jié)構(gòu)介紹
  • 整個小程序框架系統(tǒng)分為兩部分:邏輯層和視圖層。小程序開發(fā)框架的目標(biāo)是通過盡可能簡單、高效的方式讓開發(fā)者可以在微信中開發(fā)具有原生小程序體驗(yàn)的服務(wù)。小程序在視圖層與邏輯層間提供了數(shù)據(jù)傳輸和事件系統(tǒng),提供了自己的視圖層以及邏輯層框架,讓開發(fā)者能夠?qū)W⒂跀?shù)據(jù)與邏輯。框架的核心是一個響應(yīng)的數(shù)據(jù)綁定系統(tǒng),可以讓數(shù)據(jù)與視圖非常簡單地保持同步。在邏輯層做數(shù)據(jù)修改,在視圖層就會做相應(yīng)的更新。框架提供了一套基礎(chǔ)的組件,這些組件自帶微信風(fēng)格的樣式以及特殊的邏輯,開發(fā)者可以通過組合基礎(chǔ)組件,創(chuàng)建出強(qiáng)大的微信小程序 。

  • Mysql數(shù)據(jù)庫
  • Mysql 經(jīng)過多次的更新,功能層面已經(jīng)非常的豐富和完善了,從Mysql4版本到5版本進(jìn)行了比較大的更新,在商業(yè)的實(shí)際使用中取得了很好的實(shí)際應(yīng)用效果。最新版本的Mysql支持對信息的壓縮,同時還能進(jìn)行加密能更好的滿足對信息安全性的需求。同時經(jīng)過系統(tǒng)的多次更新,數(shù)據(jù)庫自身的鏡像功能也得到了很大的增強(qiáng),運(yùn)行的流暢度和易用性方面有了不小的進(jìn)步,驅(qū)動的使用和創(chuàng)建也更加的高效快捷。最大的變動還是進(jìn)行了空間信息的顯示優(yōu)化,能更加方便的在應(yīng)用地圖上進(jìn)行坐標(biāo)的標(biāo)注和運(yùn)算。強(qiáng)大的備份功能也保證了用戶使用的過程會更加安心,同時支持的Office特性還支持用戶的自行安裝和使用。在信息的顯示形式上也進(jìn)行了不小的更新,增加了兩個非常使用的顯示區(qū),一個是信息區(qū),對表格和文字進(jìn)行了分類處理,界面的顯示更加清爽和具體。第二是儀表的信息控件,能在儀表信息區(qū)進(jìn)行信息的顯示,同時還能進(jìn)行多個信息的比對,為用戶的實(shí)際使用帶來了很大的便捷。

    針對本文中設(shè)計(jì)的垃圾分類小助手平臺在實(shí)際的實(shí)現(xiàn)過程中,最終選擇Mysql數(shù)據(jù)庫的主要原因在于在企業(yè)的應(yīng)用系統(tǒng)應(yīng)用及開發(fā)的過程中會存在大量的數(shù)據(jù)庫比較頻繁的操作,而且數(shù)據(jù)的安全性要求也是非常的高。綜合這些因素,最終選擇安全性系數(shù)比較高的Mysql來對垃圾分類小助手平臺后臺數(shù)據(jù)進(jìn)行存儲操作。

    數(shù)據(jù)庫管理系統(tǒng)的總體結(jié)構(gòu)圖如下圖所示。

    圖2-1 數(shù)據(jù)庫組成結(jié)構(gòu)


  • B/S結(jié)構(gòu)
  • B/S(Browser/Server)比前身架構(gòu)更為省事的架構(gòu)。它借助Web server完成數(shù)據(jù)的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達(dá)到“瘦身”效果, 不需要考慮不停裝軟件的問題。

  • SSM框架
  • SSM即SpringMVVM+Spring+MySQL,這三個框架有各自最獨(dú)有的優(yōu)勢,那么將它們組合在一起能夠碰撞出很強(qiáng)的火花。設(shè)計(jì)者在不需消耗大量功夫,能做出Web應(yīng)用程序,而且這個程序還具有層次清晰、升級更新操作不影響正常使用的、允許多次使用的特點(diǎn)。這個復(fù)合框架形成一個有著結(jié)構(gòu)完整、功能強(qiáng)大和結(jié)構(gòu)良好的體系:SpringMVVM使各板塊分離,Spring使開發(fā)更靈活方便,讓開發(fā)者直接對對象進(jìn)行操縱,各層次分工明細(xì),并實(shí)現(xiàn)各個層次間的解耦,讓代碼更加的靈活精簡。這個框架使程序員能夠規(guī)避在開發(fā)時期避免個別錯誤導(dǎo)致整體被破壞,也能在后期應(yīng)對客戶對產(chǎn)品提出的新需求。

  • ssm框架各層關(guān)系:
  • DAO層、Service層這兩個層次都可以單獨(dú)開發(fā),互相的耦合度很低,完全可以獨(dú)立進(jìn)行,這樣的一種模式在開發(fā)大項(xiàng)目的過程中尤其有優(yōu)勢。

    Controller,View層因?yàn)轳詈隙缺容^高,因而要結(jié)合在一起開發(fā),但是也可以看作一個整體獨(dú)立于前兩個層進(jìn)行開發(fā)。這樣,在層與層之前只需要知道接口的定義,調(diào)用接口即可完成所需要的邏輯單元應(yīng)用,一切顯得非常清晰簡單。

  • 系統(tǒng)分析
  • 可行性分析
  • 開發(fā)任何一個系統(tǒng),都要對其可行性進(jìn)行分析,對其時間和資源上的限制進(jìn)行考慮,這樣可以減少系統(tǒng)開發(fā)的風(fēng)險。同時,分析之后不僅能夠合理的運(yùn)用人力,還能在各方面資源的消耗上得到節(jié)省。下面就對技術(shù)、經(jīng)濟(jì)和社會三個方面來介紹。

  • 技術(shù)可行性
  • 技術(shù)可行性主要考慮當(dāng)前項(xiàng)目所用的技術(shù)是否能夠符合,在設(shè)備上是否能夠滿足,及各種輔助工具是否提供幫助。本系統(tǒng)用的是Java開發(fā)語言,調(diào)試相對簡單,當(dāng)前的計(jì)算機(jī)硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:由于軟件的開發(fā)平臺成熟可行,它們速度快、容量大、可靠性能高、價格低,完全能滿足系統(tǒng)的需求。采用Java編程語言,已無技術(shù)上的問題。

  • 經(jīng)濟(jì)可行性
  • 系統(tǒng)所采用的Myeclipse開發(fā)平臺和Mysql后端數(shù)據(jù)庫均為免費(fèi)開發(fā)工具。故開發(fā)成本主要集中在后期的推廣及系統(tǒng)維護(hù)上。相對于成本較高的C/S模式,也是選用了成本較低的B/S模式,所以經(jīng)濟(jì)上幾乎沒任何問題。

  • 社會可行性
  • 本系統(tǒng)是自行開發(fā)的系統(tǒng),以方便高效管理垃圾分類小助手為出發(fā)點(diǎn),是具有實(shí)際意義的系統(tǒng),開發(fā)的環(huán)境軟件和用到的數(shù)據(jù)庫也都是開源代碼,不存在侵權(quán)等問題,所以在社會方面也是可行的。

  • 性能分析
  • 對于性能分析,與傳統(tǒng)的管理方式相比,傳統(tǒng)的管理方式是使用人工通過用紙和筆進(jìn)行數(shù)據(jù)信息的統(tǒng)計(jì)和管理,并且這種方式對于存儲和查找某一數(shù)據(jù)信息都比較麻煩,隨著計(jì)算機(jī)網(wǎng)絡(luò)的到來,這種傳統(tǒng)的方法很難適應(yīng)當(dāng)下社會的發(fā)展,不僅降低人們的辦事效率,而且還需要很多的人力和物力,對于使用的時間和所要花費(fèi)的費(fèi)用都是比較高的,為了降低成本費(fèi)用,提高用戶的工作效率,進(jìn)行開發(fā)一套基于計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的垃圾分類小助手 ?。

    垃圾分類小助手的開發(fā)設(shè)計(jì)時一個獨(dú)立的系統(tǒng),以之前數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的存儲開發(fā),主要是為了實(shí)現(xiàn)垃圾分類小助手 ?的用戶角色及相對應(yīng)的功能模塊,讓垃圾分類小助手的管理不會存在管理差異、低效率,而是跟傳統(tǒng)的管理信息恰好相反,垃圾分類小助手的實(shí)現(xiàn)可以節(jié)約資源,并且對于業(yè)務(wù)的處理速度也提高,速度快、效率高,功能性強(qiáng)大。

    3.3系統(tǒng)流程分析

    3.3.1添加信息流程

    添加信息,編號系統(tǒng)使用自動編號模式,沒有用戶填寫,用戶添加信息輸入信息,系統(tǒng)將自動確認(rèn)的信息和數(shù)據(jù),驗(yàn)證的成功是有效的信息添加到數(shù)據(jù)庫,信息無效,重新輸入信息。添加信息流程如圖3-3所示。

    圖3-3 添加信息流程圖

    3.3.2操作流程

    用戶想進(jìn)入系統(tǒng),首先進(jìn)入系統(tǒng)登錄界面,通過正確的用戶名、密碼,選擇登錄類型登錄,系統(tǒng)會檢查登錄信息,信息正確,然后輸入相應(yīng)的功能界面,提示信息錯誤,登錄失敗。系統(tǒng)操作流程如圖3-4所示。

    圖3-4操作流程圖

    3.3.3刪除信息流程

    用戶選擇要刪除的信息并單擊Delete按鈕。系統(tǒng)提示是否刪除信息。如果用戶想要刪除信息,系統(tǒng)將刪除信息。系統(tǒng)數(shù)據(jù)庫刪除信息。刪除信息流程圖如圖3-5所示。

    3-5?刪除信息流程圖


  • 系統(tǒng)設(shè)計(jì)
  • 系統(tǒng)架構(gòu)設(shè)計(jì)
  • 垃圾分類小助手 的系統(tǒng)項(xiàng)目的概述設(shè)計(jì)分析,主要內(nèi)容有垃圾分類小助手的具體分析,進(jìn)行數(shù)據(jù)庫的是設(shè)計(jì),數(shù)據(jù)采用mysql數(shù)據(jù)庫,并且對于系統(tǒng)的設(shè)計(jì)采用比較人性化的操作設(shè)計(jì),對于系統(tǒng)出現(xiàn)的錯誤信息可以及時做出處理及反饋。

    基于垃圾分類小助手的設(shè)計(jì)基于現(xiàn)有的電腦,可以實(shí)現(xiàn)用戶管理、垃圾信息、商城兌換、兌換記錄、分類信息、我的積分等詳細(xì)的了解及統(tǒng)計(jì)分析。根據(jù)系統(tǒng)功能需求建立的模塊關(guān)系圖如下圖:

    ???????????圖4-1管理員功能模塊圖

  • 開發(fā)流程設(shè)計(jì)
  • 垃圾分類小助手的開發(fā)對管理模塊和系統(tǒng)使用的數(shù)據(jù)庫進(jìn)行分析,編寫代開發(fā),規(guī)劃和操作是構(gòu)建信息管理應(yīng)用程序的必要三步曲,它決定了系統(tǒng)是否能夠真正實(shí)現(xiàn)預(yù)設(shè)功能以及是否可以在成功設(shè)計(jì)后實(shí)施。在開發(fā)過程中,每個階段必須嚴(yán)格按照線性順序進(jìn)行開發(fā),并且在相應(yīng)階段生成的每個工作都可以通過技術(shù)進(jìn)行驗(yàn)證和檢查。確保一個階段完成后是正確的,不會造成下一階段拖拽現(xiàn)象,使系統(tǒng)完成設(shè)計(jì)功能后得到保證。

    從垃圾分類小助手的成功開發(fā)經(jīng)驗(yàn)來看,上述方法效果最為明顯,最大程度地降低了系統(tǒng)開發(fā)的復(fù)雜性。如圖4-2所示。

    ?????????圖4-2開發(fā)系統(tǒng)流程圖

  • 數(shù)據(jù)庫設(shè)計(jì)
  • 數(shù)據(jù)庫是信息系統(tǒng)的基礎(chǔ)和核心。數(shù)據(jù)庫設(shè)計(jì)的好壞直接影響到信息系統(tǒng)開發(fā)的成敗。創(chuàng)建數(shù)據(jù)庫表首先確定實(shí)體的屬性和實(shí)體之間的關(guān)系。根據(jù)關(guān)系創(chuàng)建一個數(shù)據(jù)表。

    4.3.1實(shí)體ER圖

    數(shù)據(jù)庫是整個軟件編程中最重要的一個步驟,對于數(shù)據(jù)庫問題主要是判定數(shù)據(jù)庫的數(shù)量和結(jié)構(gòu)公式的創(chuàng)建。展示系統(tǒng)使用的是Mysql進(jìn)行對數(shù)據(jù)庫進(jìn)行管理,進(jìn)行保證數(shù)據(jù)的安全性、穩(wěn)定性等。

    概念模型的設(shè)計(jì)是為了抽象真實(shí)世界的信息,并對信息世界進(jìn)行建模。它是數(shù)據(jù)庫設(shè)計(jì)的強(qiáng)大工具。數(shù)據(jù)庫概念模型設(shè)計(jì)可以通過E-R圖描述現(xiàn)實(shí)世界的概念模型。系統(tǒng)的E-R圖顯示了系統(tǒng)中實(shí)體之間的鏈接。而且Mysql數(shù)據(jù)庫是自我保護(hù)能力比較強(qiáng)的數(shù)據(jù)庫,下圖主要是對數(shù)據(jù)庫實(shí)體的E-R圖:

    (1)用戶注冊管理E-R圖,如圖4-3所示:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖4-3用戶注冊實(shí)體屬性圖

    ? ? ? ? ? ? ? ? ? ? ? ? ??

    ?(2)垃圾信息管理E-R圖如圖4-4所示:

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖4-4垃圾信息管理實(shí)體圖

    這些功能可以充分滿足垃圾分類小助手的需求。此系統(tǒng)功能較為全面如下圖系統(tǒng)功能結(jié)構(gòu)如圖4-5所示。

    ??????????????????????????????圖4-5系統(tǒng)功能結(jié)構(gòu)圖

    4.3.2數(shù)據(jù)表

    將數(shù)據(jù)庫概念設(shè)計(jì)的E-R圖轉(zhuǎn)換為關(guān)系數(shù)據(jù)庫。在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)關(guān)系由數(shù)據(jù)表組成,但是表的結(jié)構(gòu)表現(xiàn)在表的字段上。

    user_registration表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    user_registration_id

    int

    11

    用戶注冊ID

    user_account

    varchar

    64

    用戶賬號

    full_name

    varchar

    64

    姓名

    gender

    varchar

    64

    性別

    age

    varchar

    64

    年齡

    examine_state

    varchar

    16

    審核狀態(tài)

    recommend

    int

    11

    智能推薦

    user_id

    int

    11

    用戶ID

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    user_answer表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    user_answer_id

    mediumint

    8

    user_id

    mediumint

    8

    用戶ID

    exam_id

    mediumint

    8

    考試id

    score

    double

    8

    分?jǐn)?shù)

    answers

    varchar

    1000

    答案

    score_detail

    varchar

    1000

    評分詳情

    objective_score

    double

    8

    客觀題得分

    subjective_score

    double

    8

    主觀題得分

    score_state

    tinyint

    2

    評分狀態(tài)

    nickname

    varchar

    255

    提交人

    create_time

    timestamp

    0

    創(chuàng)建時間:

    update_time

    timestamp

    0

    更新時間:

    spam_information表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    spam_information_id

    int

    11

    垃圾信息ID

    garbage_name

    varchar

    64

    垃圾名稱

    garbage_type

    varchar

    64

    垃圾類型

    quantity_of_garbage

    varchar

    64

    垃圾數(shù)量

    cover

    varchar

    255

    封面

    remarks

    text

    0

    備注

    hits

    int

    11

    點(diǎn)擊數(shù)

    praise_len

    int

    11

    點(diǎn)贊數(shù)

    examine_state

    varchar

    16

    審核狀態(tài)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    mall_exchange表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    mall_exchange_id

    int

    11

    商城兌換ID

    commodity_number

    varchar

    64

    商品編號

    trade_name

    varchar

    64

    商品名稱

    commodity_type

    varchar

    64

    商品類型

    redeem_points_required

    varchar

    64

    兌換所需積分

    product_picture

    varchar

    255

    商品圖片

    merchandise_inventory

    varchar

    64

    商品庫存

    commodity_specifications

    varchar

    64

    商品規(guī)格

    hits

    int

    11

    點(diǎn)擊數(shù)

    praise_len

    int

    11

    點(diǎn)贊數(shù)

    examine_state

    varchar

    16

    審核狀態(tài)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    classification_information表

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    classification_information_id

    int

    11

    分類信息ID

    garbage_type

    varchar

    64

    垃圾類型

    commodity_type

    varchar

    64

    商品類型

    examine_state

    varchar

    16

    審核狀態(tài)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    Collect表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    collect_id

    int

    10

    收藏ID

    user_id

    int

    10

    收藏人ID

    source_table

    varchar

    255

    來源表

    source_field

    varchar

    255

    來源字段

    source_id

    int

    10

    來源ID

    title

    varchar

    255

    標(biāo)題

    img

    varchar

    255

    封面

    create_time

    timestamp

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

    my_points表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    my_points_id

    int

    11

    我的積分ID

    integral_number

    varchar

    64

    積分編號

    account_points

    varchar

    64

    賬戶積分

    user_account

    int

    11

    用戶賬號

    full_name

    varchar

    64

    姓名

    remarks

    text

    0

    備注

    examine_state

    varchar

    16

    審核狀態(tài)

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創(chuàng)建時間

    update_time

    timestamp

    0

    更新時間

  • 系統(tǒng)實(shí)現(xiàn)
  • 數(shù)據(jù)庫連接模塊的實(shí)現(xiàn)
  • 從web系統(tǒng)查詢數(shù)據(jù)的根本的查詢步驟:

    Step1: 進(jìn)行檢查并且過濾來自用戶的系統(tǒng)數(shù)據(jù);

    Step2: 成立起一個合適的數(shù)據(jù)庫進(jìn)行連接;

    Step3: 進(jìn)行查詢系統(tǒng)數(shù)據(jù)庫;

    Step4: 獲得查詢的結(jié)構(gòu);

    Step5: 把查詢的結(jié)果展示給用戶。

    Step6: 數(shù)據(jù)庫連接斷開,釋放資源。

    數(shù)據(jù)庫連接原理如下圖所示。

    圖5-1數(shù)據(jù)庫連接原理

    數(shù)據(jù)庫連接關(guān)鍵代碼如下所示。

    /**

    ?* 臨時訪問牌(AccessToken)表實(shí)體類

    ?*

    ?*/

    @TableName("access_token")

    @Data

    @EqualsAndHashCode(callSuper = false)

    public class AccessToken implements Serializable {

    ????private static final long serialVersionUID = 913269304437207500L;

    ????/**

    ?????* 臨時訪問牌ID

    ?????*/

    ????@TableId(value = "token_id", type = IdType.AUTO)

    ????private Integer tokenId;

    ????/**

    ?????* 臨時訪問牌

    ?????*/

    ????@TableField(value = "token")

    ????private String token;

    ????/**

    ?????* 最大壽命:默認(rèn)2小時

    ?????*/

    ????@TableField(value = "maxage")

    ????private Integer maxage;

    ????/**

    ?????* 創(chuàng)建時間:

    ?????*/

    ????@TableField(value = "create_time")

    ????private Timestamp createTime;

    ????/**

    ?????* 更新時間:

    ?????*/

    ????@TableField(value = "update_time")

    ????private Timestamp updateTime;

    ????/**

    ?????* 用戶信息

    ?????*/

    ????@TableField(value = "user_id")

    ????private Integer user_id;

    }

  • 登錄模塊的實(shí)現(xiàn)
  • 為確保系統(tǒng)安全性,系統(tǒng)操作員只有在登錄界面輸入正確的用戶名、密碼、權(quán)限以及驗(yàn)證碼,單擊“登錄”按鈕后才能夠進(jìn)入本系統(tǒng)的主界面。

    用戶登錄流程圖如下所示。

    ????????????????????

    圖5-1用戶登錄流程圖

    登錄界面如下圖所示。

    ? ? ? ? ? ? ? ? ? ? ? ? ??

    圖5-1登錄界面

    登錄代碼如下:

    ????/**

    ?????* 登錄

    ?????* @param data

    ?????* @param httpServletRequest

    ?????* @return

    ?????*/

    ????@PostMapping("login")

    ????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

    ????????log.info("[執(zhí)行登錄接口]");

    ????????String username = data.get("username");

    ????????String email = data.get("email");

    ????????String phone = data.get("phone");

    ????????String password = data.get("password");

    ????????List resultList = null;

    ????????QueryWrapper wrapper = new QueryWrapper<User>();

    ????????Map<String, String> map = new HashMap<>();

    ????????if(username != null && "".equals(username) == false){

    ????????????map.put("username", username);

    ????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));

    ????????}

    ????????else if(email != null && "".equals(email) == false){

    ????????????map.put("email", email);

    ????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));

    ????????}

    ????????else if(phone != null && "".equals(phone) == false){

    ????????????map.put("phone", phone);

    ????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));

    ????????}else{

    ????????????return error(30000, "賬號或密碼不能為空");

    ????????}

    ????????if (resultList == null || password == null) {

    ????????????return error(30000, "賬號或密碼不能為空");

    ????????}

    ????????//判斷是否有這個用戶

    ????????if (resultList.size()<=0){

    ????????????return error(30000,"用戶不存在");

    ????????}

    ????????User byUsername = (User) resultList.get(0);

    ????????Map<String, String> groupMap = new HashMap<>();

    ????????groupMap.put("name",byUsername.getUserGroup());

    ????????List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));

    ????????if (groupList.size()<1){

    ????????????return error(30000,"用戶組不存在");

    ????????}

    ????????UserGroup userGroup = (UserGroup) groupList.get(0);

    ????????//查詢用戶審核狀態(tài)

    ????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){

    ????????????String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());

    ????????????if (res==null){

    ????????????????return error(30000,"用戶不存在");

    ????????????}

    ????????????if (!res.equals("已通過")){

    ????????????????return error(30000,"該用戶審核未通過");

    ????????????}

    ????????}

    ????????//查詢用戶狀態(tài)

    ????????if (byUsername.getState()!=1){

    ????????????return error(30000,"用戶非可用狀態(tài),不能登錄");

    ????????}

    ????????String md5password = service.encryption(password);

    ????????if (byUsername.getPassword().equals(md5password)) {

    ????????????// 存儲Token到數(shù)據(jù)庫

    ????????????AccessToken accessToken = new AccessToken();

    ????????????accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

    ????????????accessToken.setUser_id(byUsername.getUserId());

    ????????????tokenService.save(accessToken);

    ????????????// 返回用戶信息

    ????????????JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

    ????????????user.put("token", accessToken.getToken());

    ????????????JSONObject ret = new JSONObject();

    ????????????ret.put("obj",user);

    ????????????return success(ret);

    ????????} else {

    ????????????return error(30000, "賬號或密碼不正確");

    ????????}

    }

    ????public String select(Map<String,String> query,Map<String,String> config){

    ????????StringBuffer sql = new StringBuffer("select ");

    ????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");

    ????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));

    ????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){

    ????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");

    ????????}

    ????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){

    ????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");

    ????????}

    ????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){

    ????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;

    ????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;

    ????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);

    ????????}

    ????????log.info("[{}] - 查詢操作,sql: {}",table,sql);

    ????????return sql.toString();

    }

    ????public List selectBaseList(String select) {

    ????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

    ????????List<E> list = new ArrayList<>();

    ????????for (Map<String,Object> map:mapList) {

    ????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

    ????????}

    ????????return list;

    }

  • 注冊模塊的實(shí)現(xiàn)
  • 用戶在填寫數(shù)據(jù)的時候必須與注冊頁面上的驗(yàn)證相匹配否則會注冊失敗,注冊頁面的表單驗(yàn)證是通過驗(yàn)證的,用戶名的長度必須在6到18之間,郵箱必須帶有@符號,密碼和密碼確認(rèn)必須相同,你輸入的密碼,系統(tǒng)會根據(jù)你輸入密碼的強(qiáng)度給出指定的值,電話號碼和身份證號碼必須要求輸入格式與生活相符合,當(dāng)你前臺驗(yàn)證通過的時候你點(diǎn)擊注冊,表單會將你輸入的值通過name值傳遞給后臺并保存到數(shù)據(jù)庫中。

    用戶注冊流程圖如下圖所示。

    圖5-1用戶注冊流程圖

    ? ? ? ? ? ? ? ? ? ? ? ?

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖5-1用戶注冊界面

    注冊關(guān)鍵代碼如下所示。

    ??/**

    ?????* 注冊

    ?????* @return

    ?????*/

    ????@PostMapping("register")

    ????public Map<String, Object> signUp(HttpServletRequest request) throws IOException {

    ????????// 查詢用戶

    ????????Map<String, String> query = new HashMap<>();

    ????????Map<String,Object> map = service.readBody(request.getReader());

    ????????query.put("username",String.valueOf(map.get("username")));

    ????????List list = service.selectBaseList(service.select(query, new HashMap<>()));

    ????????if (list.size()>0){

    ????????????return error(30000, "用戶已存在");

    ????????}

    ????????map.put("password",service.encryption(String.valueOf(map.get("password"))));

    ????????service.insert(map);

    ????????return success(1);

    }

    ????public Map<String,Object> readBody(BufferedReader reader){

    ????????BufferedReader br = null;

    ????????StringBuilder sb = new StringBuilder("");

    ????????try{

    ????????????br = reader;

    ????????????String str;

    ????????????while ((str = br.readLine()) != null){

    ????????????????sb.append(str);

    ????????????}

    ????????????br.close();

    ????????????String json = sb.toString();

    ????????????return JSONObject.parseObject(json, Map.class);

    ????????}catch (IOException e){

    ????????????e.printStackTrace();

    ????????}finally{

    ????????????if (null != br){

    ????????????????try{

    ????????????????????br.close();

    ????????????????}catch (IOException e){

    ????????????????????e.printStackTrace();

    ????????????????}

    ????????????}

    ????????}

    ????????return null;

    ????}

    ????public void insert(Map<String,Object> body){

    ????????E entity = JSON.parseObject(JSON.toJSONString(body),eClass);

    ????????baseMapper.insert(entity);

    ????????log.info("[{}] - 插入操作:{}",entity);

    }

  • 環(huán)保資訊模塊的實(shí)現(xiàn)
  • 如果環(huán)保資訊的信息需要修改,管理員可以通過查詢環(huán)保資訊數(shù)據(jù)的基本信息來查詢環(huán)保資訊,查詢環(huán)保資訊是通過ajax技術(shù)來進(jìn)行查詢的,需要傳遞環(huán)保資訊的標(biāo)題、編號等參數(shù)然后在返回到該頁面中,可以選中要修改或刪除的那條信息,如果選中了超過一條數(shù)據(jù),頁面會挑一個窗口提醒只能選擇一條數(shù),如果沒有選中數(shù)據(jù)會挑一個窗口題型必須選擇一條數(shù)據(jù)。當(dāng)選擇確認(rèn)修改的時候,后臺會根據(jù)傳過來的id到數(shù)據(jù)庫查詢,并將結(jié)果返回到修改頁面中,可以在修改頁面中修改剛剛選中的信息當(dāng)點(diǎn)擊確認(rèn)的時候from表單會將修改的數(shù)據(jù)提交到后臺并保存到數(shù)據(jù)庫中,就是說如果提交的數(shù)據(jù)數(shù)據(jù)庫中存在就修改,否則就保存。

    環(huán)保資訊展示界面如下圖所示。

    圖5-1環(huán)保資訊界面圖

    環(huán)保資訊管理關(guān)鍵代碼如下所示。

    @RequestMapping("/get_list")

    ????public Map<String, Object> getList(HttpServletRequest request) {

    ????????Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

    ????????return success(map);

    ????}

  • 兌換記錄模塊的實(shí)現(xiàn)
  • 用戶兌換記錄頁面點(diǎn)開,后臺會自動生成兌換記錄列表。從session中取出該兌換信息,前臺發(fā)起請求,將對應(yīng)的兌換信息、baozhangpId參數(shù)信息從前臺傳遞BaozhangController類里,匹配到create()方法,create()方法調(diào)用BaozhangServiceImpl類的createBaozhang()方法獲取數(shù)據(jù),調(diào)用本類的getCartBaozhangItem()方法得到兌換記錄列表。

    兌換記錄界面如下所示。

    圖5-1兌換記錄界面

    兌換記錄關(guān)鍵代碼如下:

    ????@RequestMapping(value = "/del")

    ????@Transactional

    ????public Map<String, Object> del(HttpServletRequest request) {

    ????????service.delete(service.readQuery(request), service.readConfig(request));

    ????????return success(1);

    }

    ????

    ???????

    }

  • 商城兌換模塊的實(shí)現(xiàn)
  • 商城兌換信息功能需要考慮高并發(fā),防止出現(xiàn)商城重復(fù)兌換、兌換狀態(tài)顯示出錯等情況,特對兌換這一共享數(shù)據(jù)增加鎖機(jī)制。在樂觀鎖、悲觀鎖以及線程鎖中,綜合考慮性能效率和錯誤的可接受性選擇了樂觀鎖機(jī)制。樂觀鎖的實(shí)現(xiàn)方式是使用版本標(biāo)識來確定讀到的數(shù)據(jù)與提交時的數(shù)據(jù)是否一致,提交后修改版本標(biāo)識,不一致時可以采取丟棄和再次嘗試的策略。在數(shù)據(jù)庫圖書表(對應(yīng)圖書實(shí)體)設(shè)計(jì)中增加了version字段,每次數(shù)據(jù)提交時(更改兌換狀態(tài))會判斷version是否匹配,若不匹配停止本次提交,若匹配則提交成功并增加version的值。

    商城兌換信息功能整體流程:用戶瀏覽商城兌換信息時,同時會顯示兌換的狀態(tài),在用戶點(diǎn)擊搜索按鈕時,會先通過攔截器判斷用戶是否登錄,若未登錄,會跳轉(zhuǎn)至登錄頁面,提示用戶先登錄,若為登錄用戶就會跳轉(zhuǎn)至填寫商城兌換信息的頁面,填寫關(guān)鍵字眼之后,點(diǎn)擊搜索按鈕,搜索成功之后返回提示信息。

    商城兌換添加流程圖如下圖所示。

    圖5-1商城兌換添加流程圖

    商城兌換信息展示界面如下圖所示。

    圖5-1商城兌換展示界面

    商城兌換信息展示關(guān)鍵代碼如下所示。

    public List selectBaseList(String select) {

    ????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

    ????????List<E> list = new ArrayList<>();

    ????????for (Map<String,Object> map:mapList) {

    ????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

    ????????}

    ????????return list;

    }

  • 垃圾信息管理模塊的實(shí)現(xiàn)
  • 垃圾信息功能整體流程:用戶瀏覽垃圾信息時,同時會顯示垃圾信息書的狀態(tài),系統(tǒng)會在其顯示詳細(xì)信息的頁面時便會判斷垃圾的狀態(tài),若圖書狀態(tài)為可垃圾信息,則會顯示垃圾信息的鏈接按鈕。在用戶點(diǎn)擊垃圾信息按鈕時,會先通過攔截器判斷用戶是否登錄,若未登錄,會跳轉(zhuǎn)至登錄頁面,提示用戶先登錄,若為登錄用戶就會跳轉(zhuǎn)至填寫垃圾信息的頁面,填寫好垃圾信息之后,點(diǎn)擊提交按鈕,垃圾信息成功之后返回提示信息,告知用戶垃圾信息成功。

    垃圾信息管理界面如下圖所示。

    圖5-1垃圾信息管理界面圖

    垃圾信息管理關(guān)鍵代碼如下所示。

    ???public List selectBaseList(String select) {

    ????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);

    ????????List<E> list = new ArrayList<>();

    ????????for (Map<String,Object> map:mapList) {

    ????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));

    ????????}

    ????????return list;

    }

  • 我的積分管理模塊的實(shí)現(xiàn)
  • 此頁面的關(guān)鍵是編輯我的積分,包括積分編號、賬號積分、用戶賬號、姓名、備注等。單擊提交按鈕以完成信息的添加。如果未寫入完整的我的積分,例如,如果未寫入積分編號,系統(tǒng)將給出相應(yīng)的錯誤提示,并且無法成功輸入。數(shù)據(jù)以概念的形式以onsubmit =“return checkForm()”的形式寫入以進(jìn)行檢查,checkForm()函數(shù)是一種用于寫入數(shù)據(jù)的不同類型的校對方法,是不是為空也是經(jīng)過form表單中的οnsubmit=”return checkForm()來檢查。

    管理員點(diǎn)擊左側(cè)菜單“我的積分管理”,頁面跳轉(zhuǎn)到我的積分管理外觀,調(diào)用后臺測評查詢所有我的積分。并將信息密封到數(shù)據(jù)集合List,綁定到請求對象,然后頁面跳轉(zhuǎn)到相應(yīng)的界面,顯示出測評信息,單擊刪除按鈕完成我的積分的刪除。

    我的積分管理流程圖如下圖所示。

    圖5-1我的積分管理流程圖

    我的積分管理界面如下圖所示。

    圖5-1我的積分管理界面圖

    我的積分管理關(guān)鍵代碼如下所示。

    @RequestMapping(value = "/del")

    ????@Transactional

    ????public Map<String, Object> del(HttpServletRequest request) {

    ????????service.delete(service.readQuery(request), service.readConfig(request));

    ????????return success(1);

    }

  • 系統(tǒng)測試
  • 測試環(huán)境
  • 1、服務(wù)器端

    操作系統(tǒng):Windows 7

    Web服務(wù)器:Tomcat7.0

    數(shù)據(jù)庫:Mysql

    開發(fā)語言:Java

    2、客戶端

    瀏覽器:Internet Explorer10

    界面布局:DIV+CSS

    分辨率:最佳效果1027*768以上像素

    3、開發(fā)工具

    Visual Studio Code

    Myeclipse

  • 測試目標(biāo)
  • 系統(tǒng)測試是用于檢查軟件的質(zhì)量、性能、可靠性等是否符合用戶需求。一套嚴(yán)謹(jǐn)?shù)摹⒁?guī)范的、完善的測試過程將大大提高軟件的質(zhì)量、可信度、可靠性,降低軟件的出錯率,降低用戶風(fēng)險系數(shù)。通過在計(jì)算機(jī)上對系統(tǒng)進(jìn)行測試試驗(yàn)并從中發(fā)現(xiàn)此系統(tǒng)中存在的問題和錯誤然后加以修改,使之更加符合用戶需求。

    1.測試的目的是通過測試來發(fā)現(xiàn)程序在執(zhí)行過程中的錯誤的過程。

    2.好的測試方案是可以檢驗(yàn)出還未被發(fā)現(xiàn)的錯誤的方案。

    3.好的測試是發(fā)現(xiàn)了到目前為止還未被發(fā)現(xiàn)的錯誤的測試。

    4.該系統(tǒng)能夠完成管理員、垃圾信息、用戶管理、我的積分、商城兌換、兌換記錄、分類信息等功能,做到所開發(fā)的系統(tǒng)操作簡單,盡量使系統(tǒng)操作不受用戶對電腦知識水平的限制。

  • 功能測試
  • 下表是垃圾分類小助手功能的測試用例,檢測了垃圾分類小助手中對垃圾信息的增加,刪除,修改,查詢操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。

    前置條件;管理員登錄系統(tǒng)。

    表6-1垃圾信息管理的測試用例

    功能描述

    用于垃圾信息管理

    測試目的

    檢測垃圾信息管理時的各種操作的運(yùn)行情況

    測試數(shù)據(jù)以及操作

    預(yù)期結(jié)果

    實(shí)際結(jié)果

    點(diǎn)擊添加垃圾信息,必填項(xiàng)合法輸入,點(diǎn)擊保存

    提示添加成功

    與預(yù)期結(jié)果一致

    點(diǎn)擊添加垃圾信息,必填項(xiàng)輸入不合法,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊修改垃圾信息,必填項(xiàng)修改為空,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊修改垃圾信息,必填項(xiàng)輸入不合法,點(diǎn)擊保存

    提示必填項(xiàng)不能為空

    與預(yù)期結(jié)果一致

    點(diǎn)擊刪除垃圾信息,選擇垃圾信息刪除

    提示刪除成功

    與預(yù)期結(jié)果一致

    點(diǎn)擊搜索垃圾信息,輸入存在的垃圾信息名

    查找出垃圾信息

    與預(yù)期結(jié)果一致

    點(diǎn)擊搜索垃圾信息 ,輸入不存在的在線投票名

    不顯示垃圾信息

    與預(yù)期結(jié)果一致

    下表是兌換記錄管理功能的測試用例,檢測了兌換記錄管理的操作是否成功運(yùn)行。觀察系統(tǒng)的響應(yīng)情況,得出該功能也達(dá)到了設(shè)計(jì)目標(biāo),系統(tǒng)運(yùn)行正確。

    前置條件;管理員登錄系統(tǒng)。

    表6-2 兌換記錄管理的測試用例

    功能描述

    用于兌換記錄管理

    測試目的

    檢測兌換記錄管理時各種操作的情況

    測試數(shù)據(jù)以及操作

    預(yù)期結(jié)果

    實(shí)際結(jié)果

    未選擇兌換記錄,點(diǎn)擊提交

    提示請選擇兌換記錄

    與預(yù)期結(jié)果一致

    未上傳附件,點(diǎn)擊提交

    提示請選擇附件

    與預(yù)期結(jié)果一致

    未選擇原因,點(diǎn)擊提交

    提示請選擇原因

    與預(yù)期結(jié)果一致

  • 測試結(jié)果
  • 根據(jù)以上測試情況,測試結(jié)果如下表所示。

    表6-1測試結(jié)果表

    測試項(xiàng)目

    測試結(jié)果

    登錄測試

    成功

    修改密碼測試

    成功

    我的積分管理測試

    成功

    垃圾信息測試

    成功

    分類信息

    成功

    兌換記錄管理測試

    成功

    商城兌換測試

    成功

    用戶管理測試

    成功

  • 總結(jié)與展望
  • 本研究針對垃圾分類小助手地需求建模,數(shù)據(jù)建模及過程建模分析設(shè)計(jì)并實(shí)現(xiàn)垃圾分類小助手的過程。給出系統(tǒng)應(yīng)用架構(gòu)并分析優(yōu)劣勢,通過功能分解圖,系統(tǒng)組件圖描述功能需求。設(shè)計(jì)建立了數(shù)據(jù)庫,給出系統(tǒng)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的定義。通過類關(guān)系圖描述組件間的協(xié)作關(guān)系,給出各個類的定義方法。通過描述每一個類的字段,屬性及方法實(shí)現(xiàn)垃圾分類小助手 ?的前后端代碼。最終給出系統(tǒng)集成整合方法,完成垃圾分類小助手 ?地設(shè)計(jì)與實(shí)現(xiàn)。

    在此項(xiàng)目的開發(fā)中,當(dāng)靜態(tài)頁面的搭建的大體已經(jīng)完善時,就需要和負(fù)責(zé)后臺開發(fā)的技術(shù)開發(fā)者聯(lián)系,來接好前后臺的數(shù)據(jù)接口,可以讓后臺的信息在前臺顯示出來,在這個項(xiàng)目實(shí)現(xiàn)中,明白了前端開發(fā)和后臺在整個系統(tǒng)中起到了什么作用,因?yàn)榍昂笈_的連接,用戶可以對系統(tǒng)進(jìn)行操作,可以在輸入自己的相關(guān)信息后,通過后臺加工,完成對數(shù)據(jù)庫的查找、修改、添加,而理解了這些關(guān)系與實(shí)現(xiàn)的方法后。再去完善整個系統(tǒng)的功能就更加清晰與簡單了。此次的項(xiàng)目它涉及了前臺與后臺系統(tǒng)的搭建,在學(xué)校所學(xué)的知識基礎(chǔ)上,此次的項(xiàng)目,讓我對于一個系統(tǒng)的前端開發(fā),以及后臺的作用都有了一個更深切的認(rèn)知。

    參考文獻(xiàn)

    [1]周曉博. 一種微信小程序足球戰(zhàn)術(shù)板[P]. 江蘇省:CN114064164A,2022-02-18.

    [2]郭凱倩. “樂游南寧”APP及微信小程序:引領(lǐng)南寧樂游新潮流[N]. 中國文化報(bào),2022-01-25(007).

    [3], 白銀區(qū)疾病預(yù)防控制中心 開發(fā)微信小程序“白銀艾檢測”. 張國琦 主編,白銀區(qū)年鑒,甘肅人民出版社,2021,270,年鑒.

    [4]姚歆蕾. 基于艾賓浩斯遺忘曲線的英語詞匯學(xué)習(xí)微信小程序的設(shè)計(jì)與實(shí)現(xiàn)[D].云南師范大學(xué),2021.

    [5]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).

    [6]黃麗師,熊春榮.微信小程序垃圾分類小衛(wèi)士[J].電子世界,2021(09):14-15.

    [7]張寶虎. 基于微信小程序的CBMS橋梁巡查工具研發(fā)與應(yīng)用[C]//.中國公路學(xué)會養(yǎng)護(hù)與管理分會第十一屆學(xué)術(shù)年會論文集.,2021:408-414.

    [8]張武竹,王得梁,楊相龍,張瑞,劉瓊玉.個人環(huán)保貢獻(xiàn)IP值在垃圾分類上的實(shí)踐研究[J].環(huán)境與發(fā)展,2021,33(03):224-227.

    [9]Qu Xiaona. Application of Java Technology in Dynamic Web Database Technology[J]. Journal of Physics: Conference Series,2021,1744(4).

    [10]張巧嶺.基于微信小程序的垃圾分類系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2020(21):185-186.

    [11]王淑雅,王偉,李娟,諶江波,錢進(jìn). 一種基于微信小程序的垃圾分類系統(tǒng)[P]. 安徽省:CN111814026A,2020-10-23.

    [12]徐文超,焦詩琪.基于小程序云開發(fā)的垃圾分類小助手的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2020(11):62-64.

    [13]鄧斌權(quán),李劍波,瞿先超.基于云開發(fā)和微信小程序的垃圾分類系統(tǒng)實(shí)現(xiàn)[J].電腦知識與技術(shù),2020,16(07):82-84.

    [14]Lei Yu,Cheng Li,Lei Wei,Hu WenYa. Marine biological monitoring and managing system based on Java technology[J]. MIPPR 2019: REMOTE SENSING IMAGE PROCESSING, GEOGRAPHIC INFORMATION SYSTEMS, AND OTHER APPLICATIONS,2020,11432.

    [15]王爽.微信小程序在垃圾分類中的應(yīng)用研究[J].信息與電腦(理論版),2019,31(22):66-68.

    [16], 基于微信小程序人力資源咨詢與培訓(xùn)平臺V1.0. 安徽省,蕭縣新生商務(wù)代理有限公司,2019-11-09.

    [17]秦先普.華釜青年獎大賽落幕,“垃圾分類”策劃方案奪得金獎[J].中國廣告,2019(08):109-114.

    [18]楊蓉.垃圾分類小程序爆火 支付寶微信爭奪本地生活新入口[J].計(jì)算機(jī)與網(wǎng)絡(luò),2019,45(14):12-13.

    [19]周芳妃,吳俊峰.“生態(tài)藍(lán)”垃圾分類微信小程序產(chǎn)品推廣方案研究[J].無線互聯(lián)科技,2018,15(23):41-43.

    [20]周芳妃,吳俊峰.“生態(tài)藍(lán)”垃圾分類微信小程序研究[J].合作經(jīng)濟(jì)與科技,2018(02):188-190.

    [21]劉明洋,汪鴻俊,任小蕾. 微信小程序?qū)崙?zhàn)入門[M].人民郵電出版社:, 201710.429.

    致謝

    在此論文完成之際,感謝我的指導(dǎo)老師。在指導(dǎo)老師的網(wǎng)頁設(shè)計(jì)課上,當(dāng)時我學(xué)到了很多東西,這對于我實(shí)習(xí)過程中也打了一定的基礎(chǔ),而且指導(dǎo)老師對于我的設(shè)計(jì)也提出許多建議,并予以悉心的指導(dǎo),對于一些細(xì)小的問題都耐心的指導(dǎo)我去完善,授予我寫論文的好友,時常的鼓勵我,另外感謝教導(dǎo)我完善此項(xiàng)目的前端同學(xué),對于這個項(xiàng)目,我是邊學(xué)習(xí)邊實(shí)現(xiàn)完成的,有許多東西開始并不是很明白,但前端開發(fā)的同學(xué)非常耐心的引導(dǎo)我去將這個項(xiàng)目完成,在系統(tǒng)的后端開發(fā)中,所用到的后臺開發(fā)技術(shù)也時常會給我講解,助于我更好的將論文完成,在此對幫助到我的同學(xué)和一直予以教導(dǎo)的指導(dǎo)老師致以衷心的感謝,祝事業(yè)有成。

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 點(diǎn)贊+收藏+關(guān)注??? 私信領(lǐng)取本源代碼、數(shù)據(jù)庫?

    總結(jié)

    以上是生活随笔為你收集整理的SSM垃圾分类小助手毕业设计-附源码191356的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。