日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

springboot基于微信小程序“智慧校园” 一体式的设计与实现毕业设计源码091634

發布時間:2023/12/20 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springboot基于微信小程序“智慧校园” 一体式的设计与实现毕业设计源码091634 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

智慧校園一體式小程序

摘?要

隨著移動互聯網高速發展,手機、移動智能終端設備在生活中有著越來越重要的地位。在高校推崇以人為本的今天,也逐漸重視“移動互聯網”技術,以方便學校的教學管理,提升學校辦學水平。學校也通過將“移動互聯網”與教學管理相結合,巧妙地突破了時間、空間的局限,解決了教學管理工作的效率和成本問題。

本文根據智慧校園的需要實踐,研究一個基于Android和 iOS移動終端操作系統的智慧校園一體式小程序。論文重點在于研究APP技術在智慧校園的應用,主要包括以下幾個重點內容:注冊登錄、學生課程、學生成績單列表、考證助手、校園出行。采用Springboot框架、JSP技術、Ajax技術進行業務系統的編碼及其開發,實現了本系統的全部功能。本次報告,首先分析了研究的背景、作用、意義,為研究工作的合理性打下了基礎。針對智慧校園一體式小程序的各項需求以及技術問題進行分析,證明了系統的必要性和技術可行性,然后對設計系統需要使用的技術軟件以及設計思想做了基本的介紹,最后來實現智慧校園一體式和部署運行使用它。

關鍵詞:智慧校園;Springboot框架;Mysql數據庫

Smart campus integrated app

Abstract

With the rapid development of mobile Internet, mobile phones and mobile intelligent terminal devices play a more and more important role in life. Today, colleges and universities advocate people-oriented, and gradually pay attention to the "mobile Internet" technology, so as to facilitate the teaching management of the school and improve the school running level. By combining the "mobile Internet" with teaching management, the school has skillfully broken through the limitations of time and space and solved the problems of efficiency and cost of teaching management.

According to the needs and practice of smart campus, this paper studies an integrated applet of smart campus based on Android and IOS mobile terminal operating system. This paper focuses on the application of APP technology in smart campus, mainly including the following key contents: registration and login, student courses, student transcript list, research assistant and campus travel. Using springboot framework, JSP technology and Ajax technology to code and develop the business system, all the functions of the system are realized. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. This paper analyzes the various requirements and technical problems of the intelligent campus integrated applet, proves the necessity and technical feasibility of the system, then makes a basic introduction to the technical software and design ideas needed to design the system, and finally realizes the intelligent campus integrated and deploys it.

Key words:Smart campus; Springbootframework; The Mysql database

目 ?錄

第1章 緒論

1.1?研究背景與意義

1.2?開發現狀

第2章 相關技術介紹

2.1 J2EE技術

2.2 Springboot框架

2.3 MySQL數據庫

2.4B/S結構

2.5?JavaScript運行模式

2.6?B/S體系工作原理

第3章 系統分析

3.1?可行性分析

3.2?功能需求分析

3.2.1?前臺用戶功能

3.2.2?后臺管理員功能

3.3?非功能需求分析

3.4?安全性需求分析

3.4.1?系統的安全性

3.4.2?數據的安全性

3.5?數據流程分析

第4章 系統設計

4.1?系統架構設計

4.2?系統總體設計

4.3?系統功能設計

4.4?數據庫設計

4.4.1?數據需求分析

4.4.2?數據庫概念設計

4.4.3?數據庫表設計

第5章 系統實現

5.1?數據庫訪問層的實現

5.2?注冊模塊的實現

5.3?登錄模塊的實現

5.4?用戶資料修改模塊的實現

5.5?學生課程管理模塊的實現

5.6?學生管理模塊的實現

5.7考證助手管理模塊的實現

5.8?專業分類模塊的實現

5.9?學生成績模塊的實現

第6章 系統測試

6.1?測試目的

6.2?功能測試

6.3?性能測試

第7章 總結與展望

參考文獻

致謝

  • 緒論
  • 研究背景與意義
  • 隨著現代計算機網絡技術的進一步發展,智慧校園的規劃和實施已成為高校教育信息化研究的熱點,尤其是高校智慧校園一體式規劃,已經引起了國內外許多學者的關注。數字化智慧校園的信息程度和建設,是衡量一個學校的學術水平、管理水平、專業技能、招生就業等綜合能力的主要指標,是構成學院核心競爭力的手段之一,數字智慧校園己成為校園管理和發展的一種趨勢。數字化智慧校園建設項目的核心是以數字化信息和網絡為基礎,充分利用當今先進的移動應用技術、物聯網技術、云計算技術,對教學、科研、管理、技術服務、生活服務等校園信息進行收集、處理、整合、存儲、傳輸和應用,構建校園基礎管理平臺。各高等院校逐步完善智慧校園一體式建設,現已成為我國高等教育信息化的三大主題之一,是實現教育現代化的重要基礎,提升自身管理水平與綜合競爭實力的重要手段,并推進教育信息化工作進入了新的歷史階段,為高等院校可持續發展奠定了基礎。

  • 開發現狀
  • 在信息化浪潮席卷全球、日益滲透到社會生活各個領域的今天,智慧校園一體式建設如火如茶。在高職院校現代化的諸多要素中,有三個要素最為關鍵,即辦學體制的創新、課程體系的改革、智慧校園一體式建設。只有具備這三個要素,互聯網+教育的現代化教育模式才能得以真正實現。

    隨著智慧校園概念的發展,傳統的“黑板加粉筆”的教學模式將淡出教育舞臺,以教師為中心的灌輸式教學將成為歷史。隨著智慧校園一體式的發展,校園的智慧程度會越來越高:形式多樣的多媒體授課方式,使教學容量增大,而且極大提高了學生的學習興趣;遠程教育使名校名師的教學資源分享至全社會,這一切現在都可借助手機移動設備得以快捷的實現。

  • 相關技術介紹
  • J2EE技術
  • 可以掌握多門外語,而一個計算機科學家精通的大多是編程語言,它不是人類的自然語言,比如C語言、Java、Perl等等。由于不同的公司開發出的“中間件”不夠規范,所以Sun公司推出J2EE,用這個標準來解決弊病。它提供了良好的機制,讓每個層次允許與之相對的服務器、組件運行,使得系統的搭建穩定可用、開發高效、維護方便。

  • Spring boot框架?
  • Spring框架是Java平臺上的一種開源應用框架,提供具有控制反轉特性的容器。盡管Spring框架自身對編程模型沒有限制,但其在Java應用中的頻繁使用讓它備受青睞,以至于后來讓它作為EJB(EnterpriseJavaBeans)模型的補充,甚至是替補。Spring框架為開發提供了一系列的解決方案,比如利用控制反轉的核心特性,并通過依賴注入實現控制反轉來實現管理對象生命周期容器化,利用面向切面編程進行聲明式的事務管理,整合多種持久化技術管理數據訪問,提供大量優秀的Web框架方便開發等等。Spring框架具有控制反轉(IOC)特性,IOC旨在方便項目維護和測試,它提供了一種通過Java的反射機制對Java對象進行統一的配置和管理的方法。Spring框架利用容器管理對象的生命周期,容器可以通過掃描XML文件或類上特定Java注解來配置對象,開發者可以通過依賴查找或依賴注入來獲得對象。Spring框架具有面向切面編程(AOP)框架,SpringAOP框架基于代理模式,同時運行時可配置;AOP框架主要針對模塊之間的交叉關注點進行模塊化。Spring框架的AOP框架僅提供基本的AOP特性,雖無法與AspectJ框架相比,但通過與AspectJ的集成,也可以滿足基本需求。Spring框架下的事務管理、遠程訪問等功能均可以通過使用SpringAOP技術實現。Spring的事務管理框架為Java平臺帶來了一種抽象機制,使本地和全局事務以及嵌套事務能夠與保存點一起工作,并且幾乎可以在Java平臺的任何環境中工作。Spring集成多種事務模板,系統可以通過事務模板、XML或Java注解進行事務配置,并且事務框架集成了消息傳遞和緩存等功能。Spring的數據訪問框架解決了開發人員在應用程序中使用數據庫時遇到的常見困難。它不僅對Java:JDBC、iBATS/MyBATIs、Hibernate、Java數據對象(JDO)、ApacheOJB和ApacheCayne等所有流行的數據訪問框架中提供支持,同時還可以與Spring的事務管理一起使用,為數據訪問提供了靈活的抽象。Spring框架最初是沒有打算構建一個自己的WebMVC框架,其開發人員在開發過程中認為現有的StrutsWeb框架的呈現層和請求處理層之間以及請求處理層和模型之間的分離不夠,于是創建了SpringMVC。

  • MySQL數據庫
  • 用MySQL這個軟件,是因為它能接受多個使用者訪問,而且里面存在Archive等。它會先把數據進行分類,然后分別保存在表里,這樣的特別操作就會提高數據管理系統自身的速度,讓數據庫能被靈活運用。MySQL的代碼是公開的,而且允許別人二次編譯升級。這個特點能夠降低使用者的成本,再搭配合適的軟件后形成一個良好的網站系統。雖然它有缺點,但是綜合各方面來說,它是使用者的主流運用的對象。

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

  • JavaScript 運行模式
  • JavaScript是一種屬于網絡的高級腳本語言,已經被廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。通常JavaScript腳本是通過嵌入在HTML中來實現自身的功能的。

    1.8.1是一種解釋性腳本語言(代碼不進行預編譯)。

    1.8.2主要用來向HTML(標準通用標記語言下的一個應用)頁面添加交互行為。

    1.8.3可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。

    1.8.4跨平臺特性,在絕大多數瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等)。

    1.8.5 JavaScript腳本語言同其他語言一樣,有它自身的基本數據類型,表達式和算術運算符及程序的基本程序框架。JavaScript提供了四種基本的數據類型和兩種特殊數據類型用來處理數據和文字。而變量提供存放信息的地方,表達式則可以完成較復雜的信息處理。

  • B/S體系工作原理
  • B/S架構采取瀏覽器請求,服務器響應的工作模式。

    用戶可以通過瀏覽器去訪問Internet上由Web服務器產生的文本、數據、圖片、動畫、視頻點播和聲音等信息;

    而每一個Web服務器又可以通過各種方式與數據庫服務器連接,大量的數據實際存放在數據庫服務器中;

    從Web服務器上下載程序到本地來執行,在下載過程中若遇到與數據庫有關的指令,由Web服務器交給數據庫服務器來解釋執行,并返回給Web服務器,Web服務器又返回給用戶。在這種結構中,將許許多多的網連接到一塊,形成一個巨大的網,即全球網。而各個企業可以在此結構的基礎上建立自己的Internet。

    在 B/S 模式中,用戶是通過瀏覽器針對許多分布于網絡上的服務器進行請求訪問的,瀏覽器的請求通過服務器進行處理,并將處理結果以及相應的信息返回給瀏覽器,其他的數據加工、請求全部都是由Web Server完成的。通過該框架結構以及植入于操作系統內部的瀏覽器,該結構已經成為了當今軟件應用的主流結構模式。

  • 系統分析
  • 可行性分析
  • 技術性方面,采用當前主流的Springboot框架進行系統主體框架的搭建,前臺使用jquery,ajax,實現前臺頁面的設計與美觀調整,以上技術,均由本人經過系統學習,并且都是在課程設計中實踐過的,可以使得開發更加便捷和系統。從技術角度看,這個系統是完全可以實現的。

    實用性方面,本次設計的主要任務是在智慧校園一體式小程序內學生課程、學習資料、學生成績、考證助手、學生出行等,符合當前潮流的發展。從用戶角度出發,同時也考慮系統運營成本和人力資源,采用網絡上的便捷方式,實現線上業務,使得業務流程更系統,也更方便用戶的體驗,比較實用。

    經濟性方面,由于本課題中設計的智慧校園一體式小程序的主要目的是為了能夠更加方便及快捷的進行信息的查詢管理及檢索服務,也就是能夠可以直接投入使用的信息化軟件。系統的主要成本主要是集中在對使用數據后期繼續維護及其管理更新這個操作上。但是一旦系統投入到實際的運行及使用之后就能夠很好的提高信息查詢檢索的效率,同時也需要有效的保證查詢者的信息方面的安全性,同時這個智慧校園一體式小程序所帶來的實際應用方面的價值是遠遠的超過了實際系統進行開發與維護方面的成本,因此,從經濟上來說開發這個軟件是可行的。

  • 功能需求分析
  • 智慧校園一體式小程序的功能主要分為前臺用戶根據自己的需求進行注冊登錄,瀏覽課程資料列表并對選中的學生課程進行學習操作。后臺系統管理員因職責的不同,管理員主要對學生用戶,課程資料、學生成績,學生出行等進行管理。

    學生用例圖如下所示。

    圖3-1 學生用例圖

    管理員用例圖如下所示。

    圖3-2 管理員用例圖

  • 前臺用戶功能
  • 前臺用戶可分為未注冊用戶需求和以注冊用戶需求。

    未注冊用戶的功能如下:

    注冊賬號:用戶填寫個人信息,并驗證手機號碼。

    瀏覽課程資料:用戶可以瀏覽主頁面的資料來了解系統的最新課程資料。

    瀏覽校園資訊:用戶可以瀏覽學校發布的校園資訊信息等。

    已注冊學生的功能如下:

    登錄:根據賬號密碼進行登錄操作。

    維護個人信息:學生因個人信息的變更可以隨時修改自己注冊信息。

    瀏覽課程資料:選中某個課程可查看其課程資料內容。

    學生出行:可以瀏覽學校的班車出行列表。

    學生成績:學生可以根據查詢個人成績情況等。

  • 后臺管理員功能
  • 后臺管理員可分為普通管理員和超級管理員。

    管理員功能如下:

    修改密碼:管理員可以隨時修改自己進入系統的登錄密碼,以保證系統的安全性。

    學生課程管理:對學生課程資料進行維護,添加、刪除、修改信息。

    上課地點管理:對上課地點信息進行維護,添加、刪除、修改信息。

    學生成績單管理:對學生的成績信息進行維護管理。

    學生出行管理:對學生出行信息進行維護管理。

    學生管理:可以查看注冊學生的信息,并對其進行管理。

    考證助手管理:對考證信息進行維護管理。

  • 非功能需求分析
  • 首先主要考慮的是系統功能軟件,在具體設計的環節上,是不是能夠較好的滿足各類用戶的基本功能需求,如果不能較好的滿足用戶需求,那么這個系統的存在是沒有價值的。軟件系統的非功能性求分析,從7個方面展開,一個是性能分析,針對系統;一個是安全分析,針對系統,一個是完整度分析,針對系統,一個是可維護分析,針對系統,一個是可擴展性分析,針對系統,一個是適應業務的性能分析。面對教學互動平臺存在的性能、安全、擴展、完整度等7個方面性能綜合比對分析后發現,需要相應的非功能性需求分析。

  • 安全性需求分析
  • 系統的安全性
  • 安全性對每一個系統來說都是非常重要的。安全性很好的系統可以保護企業的信息和用戶的信息不被竊取。提高系統的安全性不僅是對用戶的負責,更是對企業的負責。尤其針對于教學互動平臺來說,必須要有很好的安全性來保障整個系統。

    系統具有對使用者有權限控制,針對角色的不通限制使用者的權限,以此來確保系統的安全性。

  • 數據的安全性
  • 數據庫中的數據是從外界輸入的,當數據的輸入時,由于種種原因,輸入的數據會無效,或者是臟數據。因此,怎樣保證輸入的數據符合規定,成為了數據庫系統,尤其是多用戶的關系數據庫系統首要關注的問題。

    因此,在寫入數據庫時,要保證數據完整性、正確性和一致性。

  • 數據流程分析
  • 對系統的數據流進行分析,系統的使用者分為二類,一般用戶(學生、老師),管理員。系統主要對界面信息傳送,登錄信息的驗證,注冊信息的接收,用戶各種操作的響應做處理。

    系統頂層數據流圖如下圖所示。

    圖3-2 頂層數據流圖

    要判斷用戶是是什么身份,是根據登錄的數據來判斷后,跳轉到對應的功能界面。在系統的內部用戶就可以對數據進行操作,數據庫中心就可以接收到系統傳輸的有效數據流來對數據sql語句進行對應操作。

    系統底層數據流圖如下圖所示。

    ?圖3-3 底層數據流圖

    系統可以分為前臺和后臺兩部分,每一種操作后系統都返回操作結果。前臺和后臺的數據連接主要通過數據庫,既分別對數據庫做不同的操作。

  • 系統設計
  • 系統架構設計
  • 智慧校園一體式小程序的架構設計主要分為可以3層,主要有Web層,業務層,Model層。其中web層還包括View層和Controller層,Model層包括元數據擴展層和數據訪問層。

    系統架構如下圖所示。

    圖4-1 系統架構

  • 系統總體設計
  • 智慧校園一體式小程序總體分為前臺用戶模塊和后臺管理員模塊。

    兩個模塊表現上是分別獨立存在,但是訪問的數據庫是一樣的。每一個模塊的功能都是根據先前完成的需求分析,并查閱相關資料后整理制作的。

    綜上所述,系統功能結構圖如下圖所示。

    圖4-2 系統功能結構圖

  • 系統功能設計
  • 登錄模塊:登錄模塊是進入系統的入口,所有用戶必須登錄后才能訪問系統。登錄需要輸入用戶名和密碼,如果多次嘗試登錄需要輸入驗證碼。登錄時需要選擇用戶的角色,是一般用戶還是管理員登錄等。登錄成功后,會通過數據庫獲取用戶的權限,并跳轉至用戶的主頁面。

    課程資料模塊:課程資料模塊可以發布最新課程課程資料等信息,包括課程資料標題、開源、分類、點擊量以及正文內容等。

    考證助手模塊:用戶可以在線進行瀏覽考證信息操作等。

    學生成績模塊:管理員對學生成績信息有維護的權限。

  • 數據需求分析
  • 從前面可以分析到數據庫中最重要的是課程信息,學生課程,學生信息,考證助手,成績信息。分析可以得到如下數據描述:

    學生:用于記錄學生的各種信息,包括學號、密碼、姓名、性別、身份證、電話、院系、班級、照片、是否審核等數據項。

    課程:存放給課程的內容,包括課程編號、課程名稱、發布時間、教學年段、課程視頻、課程附件、發布人等數據項。

    校園出行:存儲平臺內的校園出行內容信息。包括車輛名稱,車輛路線等數據項。

  • 數據庫概念設計
  • 根據前面的數據流程圖,結合系統的功能模塊設計,設計出符合系統的各信息實體。

    系統ER圖如下圖所示。

    圖4-3 系統ER圖

  • 數據庫表設計
  • 智慧校園一體式小程序所擁有的數據表有以下:考證助手列表,學生課程信息表,校園出行表,學生成績表,專業分類表等。

    由于數據表較多,只展示系統主要數據表,如下表所示。

    student表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    student_id

    int

    11

    學生ID

    full_name

    varchar

    64

    姓名

    gender

    varchar

    64

    性別

    id_number

    varchar

    255

    身份證號

    student_number

    varchar

    64

    學號

    examine_state

    varchar

    16

    審核狀態

    recommend

    int

    11

    智能推薦

    user_id

    int

    11

    用戶ID

    create_time

    datetime

    0

    創建時間

    update_time

    timestamp

    0

    更新時間

    student_schedule表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    student_schedule_id

    int

    11

    學生課程表ID

    course_name

    varchar

    64

    課程名稱

    professional_classification

    varchar

    64

    專業分類

    student

    int

    11

    學生

    class_time

    varchar

    64

    上課時間

    class_place

    varchar

    64

    上課地點

    course_introduction

    text

    0

    課程簡介

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創建時間

    update_time

    timestamp

    0

    更新時間

    research_assistant表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    research_assistant_id

    int

    11

    考證助手ID

    textual_research_name

    varchar

    64

    考證名稱

    professional_classification

    varchar

    64

    專業分類

    name_of_secondary_college

    varchar

    64

    二級學院名稱

    registration_time

    varchar

    64

    報名時間

    examination_time

    varchar

    64

    考試時間

    research_cover

    varchar

    255

    考證封面

    introduction_to_textual_research

    text

    0

    考證簡介

    hits

    int

    11

    點擊數

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創建時間

    update_time

    timestamp

    0

    更新時間

    report_card表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    report_card_id

    int

    11

    學生成績單ID

    student

    int

    11

    學生

    term_name

    varchar

    64

    學期名稱

    course_name

    varchar

    64

    課程名稱

    examination_type

    varchar

    64

    考試類型

    examination_results

    int

    11

    考試成績

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創建時間

    update_time

    timestamp

    0

    更新時間

    professional_classification表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    professional_classification_id

    int

    11

    專業分類ID

    professional_classification

    varchar

    64

    專業分類

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創建時間

    update_time

    timestamp

    0

    更新時間

    campus_travel表:

    名稱

    類型

    長度

    不是null

    主鍵

    注釋

    campus_travel_id

    int

    11

    校園出行ID

    vehicle_name

    varchar

    64

    車輛名稱

    departure_station

    varchar

    64

    出發站

    terminus

    varchar

    64

    終點站

    estimated_arrival_time

    varchar

    64

    預計到校站時間

    vehicle_picture

    varchar

    255

    車輛圖片

    vehicle_route

    text

    0

    車輛路線

    vehicle_information

    text

    0

    車輛信息

    hits

    int

    11

    點擊數

    recommend

    int

    11

    智能推薦

    create_time

    datetime

    0

    創建時間

    update_time

    timestamp

    0

    更新時間

  • 系統實現
  • 數據庫訪問層的實現
  • 該系統是通過jdbc和Mysql達成連接的,新建一個jdbc.properties文件來填寫與數據庫連接所需要的驅動和參數。

    jdbc.driverClass=com.Mysql.jdbc.Driver

    jdbc.url=jdbc:Mysql://localhost:3306/tsi

    jdbc.username=root

    jdbc.password=123

    第一個參數代表Mysql數據庫的驅動,第二個參數代表要連接的數據庫,第三個和第四個參數代表數據庫連接名和密碼。

    后臺與數據庫訪問主要是通過HQL語句來進行查詢的,查詢語句中的表名是表格的實體類名,在這種查詢語句中*是不允許使用的,除非適合聚合函數一起使用才可以。

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

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

    圖5-1用戶注冊流程圖

    ???用戶注冊界面如下圖所示。

    圖5-2用戶注冊界面

    用戶注冊的關鍵代碼如下。

    ??/**

    ?????* 注冊

    ?????* @param user

    ?????* @return

    ?????*/

    ????@PostMapping("register")

    ????public Map<String, Object> signUp(@RequestBody User user) {

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

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

    ????????query.put("username",user.getUsername());

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

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

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

    ????????}

    ????????user.setUserId(null);

    ????????user.setPassword(service.encryption(user.getPassword()));

    ????????service.save(user);

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

    }

    /**

    ?????* 用戶ID:[0,8388607]用戶獲取其他與用戶相關的數據

    ?????*/

    ????@Id

    ????@GeneratedValue(strategy = GenerationType.IDENTITY)

    ????@Column(name = "user_id")

    ????private Integer userId;

    ????/**

    ?????* 賬戶狀態:[0,10](1可用|2異常|3已凍結|4已注銷)

    ?????*/

    ????@Basic

    ????@Column(name = "state")

    ????private Integer state;

    ????/**

    ?????* 所在用戶組:[0,32767]決定用戶身份和權限

    ?????*/

    ????@Basic

    ????@Column(name = "user_group")

    ????private String userGroup;

    ????/**

    ?????* 上次登錄時間:

    ?????*/

    ????@Basic

    ????@Column(name = "login_time")

    ????private Timestamp loginTime;

    ????/**

    ?????* 手機號碼:[0,11]用戶的手機號碼,用于找回密碼時或登錄時

    ?????*/

    ????@Basic

    ????@Column(name = "phone")

    ????private String phone;

    ????/**

    ?????* 手機認證:[0,1](0未認證|1審核中|2已認證)

    ?????*/

    ????@Basic

    ????@Column(name = "phone_state")

    ????private Integer phoneState;

    ????/**

    ?????* 用戶名:[0,16]用戶登錄時所用的賬戶名稱

    ?????*/

    ????@Basic

    ????@Column(name = "username")

    ????private String username;

    ????/**

    ?????* 昵稱:[0,16]

    ?????*/

    ????@Basic

    ????@Column(name = "nickname")

    ????private String nickname;

    ????/**

    ?????* 密碼:[0,32]用戶登錄所需的密碼,由6-16位數字或英文組成

    ?????*/

    ????@Basic

    ????@Column(name = "password")

    ????private String password;

    ????/**

    ?????* 郵箱:[0,64]用戶的郵箱,用于找回密碼時或登錄時

    ?????*/

    ????@Basic

    ????@Column(name = "email")

    ????private String email;

    ????/**

    ?????* 郵箱認證:[0,1](0未認證|1審核中|2已認證)

    ?????*/

    ????@Basic

    ????@Column(name = "email_state")

    ????private Integer emailState;

    ????/**

    ?????* 頭像地址:[0,255]

    ?????*/

    ????@Basic

    ????@Column(name = "avatar")

    ????private String avatar;

    ????/**

    ?????* 創建時間:

    ?????*/

    ????@Basic

    ????@Column(name = "create_time")

    ????@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    ????private Timestamp createTime;

    ????@Basic

    ????@Transient

    ????private String code;

    }

  • 登錄模塊的實現
  • 主要由兩部分組成,登錄前的登錄界面以及登錄后的用戶功能界面。登錄界面,要求用戶輸入用戶名和密碼,當用戶名和密碼其中一個輸入為空時,給出提示“用戶名,密碼不能為空”。獲取用戶名和密碼后到數據庫中查找,如果用戶名存在,以及對應的密碼正確,則登錄成功,否則登錄失敗。登錄失敗后給出提示,并把焦點停在文本框中。登錄成功后將該次會話的全局變量username設置為用戶名。登錄成功后進入會員的功能模塊,主要有會員基本信息修改,已經發布課程信息管理,發布信息,和退出功能。退出功能是清除全局變量username的值,并跳回到首頁。

    登錄流程圖如下圖所示。

    圖5-3登錄流程圖

    用戶登錄界面如下圖所示。

    圖5-4用戶登錄界面

    用戶登錄的關鍵代碼如下。

    ???????/**

    ?????* 登錄

    ?????* @param data

    ?????* @param httpServletRequest

    ?????* @return

    ?????*/

    ????@PostMapping("login")

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

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

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

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

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

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

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

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

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

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

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

    ????????}

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

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

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

    ????????}

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

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

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

    ????????}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.select(groupMap, new HashMap<>()).getResultList();

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

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

    ????????}

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

    ????????//查詢用戶審核狀態

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

    ????????????String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

    ????????????String res = String.valueOf(service.runCountSql(sql).getSingleResult());

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

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

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

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

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

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

    ????????}

    ????????//查詢用戶狀態

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

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

    ????????}

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

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

    ????????????// 存儲Token到數據庫

    ????????????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, "賬號或密碼不正確");

    ????????}

    }

  • 用戶資料修改模塊的實現
  • 用戶登錄/注冊成功之后可以修改自己的基本信息。修改頁面的表單中每一個input的name值都要與實體類中的參數相匹配,在用戶點擊修改頁面的時候,如果改后用戶名與數據庫里面重復了,頁面會提示該用戶名已經存在了,否則通過Id來查詢用戶,并將用戶的信息修改為表單提交的數據。

  • 學生課程模塊的實現
  • 如果學生課程的信息需要修改,管理員可以通過查詢學生課程的基本信息來查詢學生課程,查詢學生課程是通過ajax技術來進行查詢的,需要傳遞學生課程的標題、編號等參數然后在返回到該頁面中,可以選中要修改或刪除的那條信息,如果選中了超過一條數據,頁面會挑一個窗口提醒只能選擇一條數,如果沒有選中數據會挑一個窗口題型必須選擇一條數據。當選擇確認修改的時候,后臺會根據傳過來的id到數據庫查詢,并將結果返回到修改頁面中,可以在修改頁面中修改剛剛選中的信息當點擊確認的時候from表單會將修改的數據提交到后臺并保存到數據庫中,就是說如果提交的數據數據庫中存在就修改,否則就保存。

    學生課程展示界面如下圖所示。

    圖5-5學生課程展示界面

    學生課程的關鍵代碼如下。

    ?@PostMapping("/add")

    ????@Transactional

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

    ????????service.insert(service.readBody(request.getReader()));

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

    ????}

    ????@Transactional

    ????public Map<String, Object> addMap(Map<String,Object> map){

    ????????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){

    ????????StringBuffer sql = new StringBuffer("INSERT INTO ");

    ????????sql.append("`").append(table).append("`").append(" (");

    ????????for (Map.Entry<String,Object> entry:body.entrySet()){

    ????????????sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

    ????????}

    ????????sql.deleteCharAt(sql.length()-1);

    ????????sql.append(") VALUES (");

    ????????for (Map.Entry<String,Object> entry:body.entrySet()){

    ????????????Object value = entry.getValue();

    ????????????if (value instanceof String){

    ????????????????sql.append("'").append(entry.getValue()).append("'").append(",");

    ????????????}else {

    ????????????????sql.append(entry.getValue()).append(",");

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

    ????????}

    ????????sql.deleteCharAt(sql.length() - 1);

    ????????sql.append(")");

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

    ????????Query query = runCountSql(sql.toString());

    ????????query.executeUpdate();

    ????}

  • 學生管理模塊的實現
  • 管理員可以對學生信息進行管理。將頁面session中的用戶賬號userId和發表學生管理文字框內容傳入控制層LiuyanAction,調用addLiuyan方法,通過LiuyanDAOImp向數據庫學生管理表插入,將結果返回lyb.jsp界面。

    學生管理添加流程圖如下圖所示。

    圖5-6學生管理添加流程圖

    學生管理發表界面如下所示。

    圖5-7學生管理界面

    學生管理關鍵代碼如下。

    <mapper namespace="com.project.demo.dao.base.BaseMapper">

    ????<select id="selectBaseList" resultType="java.util.LinkedHashMap">

    ????????${select}

    ????</select>

    ????<select id="selectBaseCount" resultType="Integer">

    ????????${count}

    ????</select>

    ????<select id="selectBaseOne" resultType="Object">

    ????????${select}

    ????</select>

    ????<update id="updateBaseSql">

    ????????${sql}

    ????</update>

    ????<delete id="deleteBaseSql">

    ????????${sql}

    ????</delete>

    </mapper>

  • 考證助手管理模塊的實現
  • 此頁面的關鍵是編寫考證助手信息,包括考證助手內容,試題等。單擊提交按鈕以完成信息的添加。如果未寫入完整的考證助手信息,例如,如果未寫入考證助手編號,系統將給出相應的錯誤提示,并且無法成功輸入。數據以概念的形式以onsubmit =“return checkForm()”的形式寫入以進行檢查,checkForm()函數是一種用于寫入數據的不同類型的校對方法,是不是為空也是經過form表單中的οnsubmit=”return checkForm()來檢查。

    管理員點擊左側菜單“考證助手管理”,頁面跳轉到考證助手信息管理外觀,調用后臺考證助手查詢所有考證助手信息。并將信息密封到數據集合List,綁定到請求對象,然后頁面跳轉到相應的jsp,顯示出考證助手信息,單擊刪除按鈕完成考證助手信息的刪除。

    考證助手管理流程圖如下圖所示。

    圖5-8考證助手管理流程圖

    考證助手添加界面如下圖所示。

    圖5-9考證助手添加界面

    考證助手發布的關鍵代碼如下。

    @RequestMapping(value = {"/avg_group", "/avg"})

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

    ????????Query count = service.avg(service.readQuery(request), service.readConfig(request));

    ????????return success(count.getResultList());

    }

  • 專業分類模塊的實現
  • 根據需求,需要對專業進行分類、刪除或修改詳情信息。刪除或修改專業時,系統根據專業的狀態判定為可刪除狀態下,才會給出刪除和修改鏈接,點擊刪除鏈接按鈕時,請求到達后臺,還會先查詢專業狀態再次做出判定能否刪除。點擊修改鏈接按鈕時,會跳轉到修改信息的頁面,重新填寫好數據后,數據提交到后臺會對數據庫中相應的記錄做出修改。

    注冊專業時,會給出數據填寫的頁面,該頁面根據填寫好的專業編號同樣會事先發送Ajax請求查詢編號是否已存在,數據填寫好之后提交到后臺,會調用相關服務在數據庫中插入記錄。

    專業分類流程圖如下圖所示。

    圖5-10專業分類流程圖

    專業分類頁面效果如下圖所示。

    圖5-12專業分類界面

    專業分類的關鍵代碼如下。

    @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);

    }

  • 學生成績模塊的實現
  • 管理員管理成績信息,用戶點擊想要觀看的成績信息進入播放界面,瀏覽器自動播放該成績信息,成績信息播放通過調用html的<video>標簽,將播放文件路徑參數傳入,完成播放,在play.jsp實現成績信息的播放。

    成績信息流程圖如下圖所示。

    圖5-13成績信息流程圖

    學生成績界面如下圖所示。

    圖5-14學生成績界面

    學生成績代碼如下所示。

    ?@RestController

    @RequestMapping("auth")

    public class AuthController extends BaseController<Auth, AuthService> {

    ????/**

    ?????* 服務對象

    ?????*/

    ????@Autowired

    ????public AuthController(AuthService service) {

    ????????setService(service);

    ????}

    }

  • 系統測試
  • 測試目的
  • 對任何系統而言,測試都是必不可少的環節,測試可以發現系統存在的很多問題,所有的軟件上線之前,都應該進行充足的測試之后才能保證上線后不會Bug頻發,或者是功能不滿足需求等問題的發生。下面分別從單元測試,功能測試和用例測試來對系統進行測試以保證系統的穩定性和可靠性。

  • 功能測試
  • 下表是系統登錄功能測試用例,檢測了用戶名和密碼的不同的輸入情況,觀察系統的響應情況。得出該功能達到了設計目標。

    表6-1 系統登錄功能測試用例

    功能描述

    用于系統登錄

    測試目的

    檢測登錄時的合法性檢查

    測試數據以及操作

    預期結果

    實際結果

    輸入的用戶名和密碼帶有非法字符

    提示用戶名或者密碼錯誤

    與預期結果一致

    輸入的用戶名或者密碼為空

    提示用戶名或者密碼錯誤

    與預期結果一致

    輸入的用戶名和密碼不存在

    提示用戶名或者密碼錯誤

    與預期結果一致

    輸入正確的用戶名和密碼

    登錄成功

    與預期結果一致

    下表是注冊功能測試用例,檢測了各種數據的輸入情況,觀察系統的響應情況。得出該功能達到了設計目標。

    表6-2 注冊功能測試用例

    功能描述

    用于用戶注冊

    測試目的

    檢測用戶注冊時的合法性檢查

    測試數據以及操作

    預期結果

    實際結果

    輸入的手機號不合法

    提示請輸入正確的手機號碼

    與預期結果一致

    輸入的字段為空

    提示必填項不能為空

    與預期結果一致

    輸入的密碼少于6位

    提示密碼必須為6-12位

    與預期結果一致

    輸入的密碼大于12位

    提示密碼必須為6-12位

    與預期結果一致

    下表是課程資料管理功能的測試用例,檢測了課程資料管理中對課程資料信息的增加,刪除,修改,查詢操作是否成功運行。觀察系統的響應情況,得出該功能也達到了設計目標,系統運行正確。

    前置條件;用戶登錄系統。

    表6-3 課程資料管理的測試用例

    功能描述

    用于課程資料管理

    測試目的

    檢測課程資料管理時的各種操作的運行情況

    測試數據以及操作

    預期結果

    實際結果

    點擊添加課程資料,必填項合法輸入,點擊保存

    提示添加成功

    與預期結果一致

    點擊添加課程資料,必填項輸入不合法,點擊保存

    提示必填項不能為空

    與預期結果一致

    點擊修改課程資料,必填項修改為空,點擊保存

    提示必填項不能為空

    與預期結果一致

    點擊修改課程資料,必填項輸入不合法,點擊保存

    提示必填項不能為空

    與預期結果一致

    點擊刪除課程資料,選擇課程資料刪除

    提示刪除成功

    與預期結果一致

    點擊搜索課程資料,輸入存在的課程資料名

    查找出課程資料

    與預期結果一致

    點擊搜索課程資料,輸入不存在的課程資料名

    不顯示課程資料

    與預期結果一致

  • 性能測試
  • 使用阿里云PTS(Performance Testing Service)性能測試服務對線上系統進行壓力測試。線上服務器環境為:1核心CPU,1G內存,1Mbps公網帶寬,Centos7.0操作系統。

    壓測過程中使用了2臺并發機器,每臺機器20個用戶并發,對系統主頁,登錄,數據查詢和數據維護等模塊進行并發訪問,測試結果是有40個用戶并發時,數據管理相關頁面的響應時間甚至達到了7s,通過查看服務器出網流量發現已經達到1381kb/s,可以看出服務器的帶寬已經達到峰值,如果系統使用5Mbps的帶寬,系統的響應時間和TPS將會大大增加。在整個測試的過程中,CPU的使用率占用僅8%,也提現出帶寬瓶頸對系統的影響非常嚴重。

  • 總結與展望
  • 隨著計算機互聯網技術的迅猛發展,各行各業都已經實現采用計算機相關技術對日益放大的數據進行管理。該課題是智慧校園一體式小程序為核心展開的,主要是為了實現線上學習、在線測試和學生獲得多樣性學習課程資料的需求。

    智慧校園一體式小程序的開發是以Springboot框架作為基礎,在Myeclipse平臺上完成編碼工作,系統整體為B/S架構,數據庫系統使用Mysql。文中詳細分析了智慧校園一體式小程序的研究背景、研究目的和意義、開發工具和相關技術以及系統需求、系統詳細設計和系統測試等等一系列內容。系統實現了智慧校園一體式小程序所需的一些基本功能,并通過測試對這些實現的功能進行了完善,進而提高了系統整體的實用性。系統投入運行時,各功能均運行正常。系統的每個界面的操作符合常規邏輯,對使用者來說操作簡單,界面友好。整個系統的各個功能設計合理,體現了人性化。

    但是由于自己在系統開發過程中對一些用到的相關知識和技術掌握不夠牢固,再加上自身開發經驗欠缺,因此系統在有些方面的功能還不夠完善,考慮的不夠全面,因此整個系統還有待日后逐步完善。

    參考文獻

    [1]李楊,李明明,李國強,李鵬飛.智慧校園多維數據可視化展示技術研究[J].網絡安全技術與應用,2022(02):91-92.

    [2]肖晨,李恒武,高勇,熊鑫.數據資產視角下的智慧校園數據資源服務支撐技術研究[J].網絡安全技術與應用,2022(02):92-94.

    [3]王云霞.大數據背景下智慧校園平臺的設計與實現探究[J].科技創新與應用,2022,12(03):76-78.

    [4]王理想,廖永紅.一體化智慧校園中臺架構的設計與實現[J].中國教育信息化,2022,28(01):100-106.

    [5]唐坤,馬亞英,聶保華,唐靜武.面向智慧校園的移動端應用服務探索——以物聯網感知服務為例[J].信息技術與信息化,2021(12):202-205.

    [6]趙香芹.高校智慧校園系統需求分析與功能分類探索[J].西昌學院學報(自然科學版),2021,35(04):75-80.

    [7]王磊,田茂琴,古榮龍.大數據及云計算技術在智慧校園中的應用研究[J].長江信息通信,2021,34(12):105-107.

    [8]朱蔓菁.基于微服務架構的智慧校園基礎平臺設計與實現[J].江西科學,2021,39(06):1094-1097+1129.

    [9]鄔鵬飛,賈宇博.高校“智慧校園”建設框架初探[J].科技視界,2021(35):10-11.

    [10]周曉晶.大數據視角下高校智慧校園信息化建設創新研究[J].無線互聯科技,2021,18(23):167-168.

    [11]韓艷芬,張恩路.從項目管理角度探討職業院校智慧校園建設路徑[J].天津職業院校聯合學報,2021,23(10):93-97.

    [12]徐帥.5G環境下藝術類高校智慧校園建設研究[J].江蘇通信,2021,37(05):42-44.

    [13]王雅斯.基于移動學習模式的智慧校園信息平臺開發與設計[J].北京印刷學院學報,2021,29(08):122-124.

    [14]徐偉剛.衛生職業學校智慧校園建設現狀及重點建設項目——以常州衛生高等職業技術學校為例[J].大眾標準化,2021(15):149-151.

    致謝

    本次設計歷時3個月。在這個畢業設計中,它離不開指導教師的指導,使事情基本順利。指導老師無論是在畢業設計歷經中,還是在論文做完中都給了了我特別大的助益。另1個方面,教師認真負責的工作姿態,謹慎的教學精神厚重的理論水準都使我獲益匪淺。他勤懇謹慎的教學育人學習姿態也給我留下了特別特別深的感覺。我從老師那里學到了很多東西。在理論和實踐中,我的技能得到了特別大的提高。在此,特向教師表示由衷的感激。

    經過對該畢業設計的全部研究和開發,我的系統研發經歷了從需求分析到實現詳細功能,再到最終測試和維護的特殊進展。讓我對系統研發有了更深層次的認識。如今我的動手本領單獨處理疑惑的本領也獲取到了特別大的演練學習增多,這是這次畢業設計最好的收獲。

    最后,在整個系統開發過程中,我周圍的同學和朋友給了我很多意見,所以我很快就確認了系統的商業思想。在次,我由衷的向他們表示感激。

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 免費領取本源代碼,請關注點贊+私信

    總結

    以上是生活随笔為你收集整理的springboot基于微信小程序“智慧校园” 一体式的设计与实现毕业设计源码091634的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。