版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
紅酒內(nèi)部信息管理系統(tǒng)的設(shè)計與實現(xiàn)
摘要隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認(rèn)識。作為計算機應(yīng)用的一部分,使用計算機對紅酒莊員工和酒品信息進行管理,具有著手工管理所無法比擬的優(yōu)點。這些優(yōu)點能夠極大地提高企業(yè)管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。所以開發(fā)一個紅酒莊內(nèi)部信息管理系統(tǒng)很有必要、本系統(tǒng)主要架構(gòu)為B/S(瀏覽器和服務(wù)器)模式、以Java技術(shù)、采用mysql數(shù)據(jù)庫和主流的jQuery框架等開發(fā)研究的紅酒莊內(nèi)部信息管理系統(tǒng)。關(guān)鍵詞:酒莊、管理系統(tǒng)、Java
Withthecontinuousimprovementofscienceandtechnology,computerscienceisbecomingmature,anditspowerfulfunctionhasbeendeeplyrecognizedbypeople.Asapartofthecomputerapplication,theuseofcomputertowinerystaffandwineinformationmanagement,hastheadvantageofmanualmanagementcannotbecompared.Theseadvantagescangreatlyimprovetheefficiencyofenterprisemanagement,butalsothescientific,standardizedmanagementofenterprises,andtheimportantconditionsoftheworld.Therefore,itisnecessarytodevelopawineryinternalinformationmanagementsystem.ThemainstructureofthissystemisB/S(browserandserver)mode,andthewineryinternalinformationmanagementsystemisdevelopedandresearchedbyusingJavatechnology,MySQLdatabaseandthemainstreamjQueryframework.一、緒論1.1系統(tǒng)研究目的意義隨著信息技術(shù)的不斷發(fā)展,我們現(xiàn)在已經(jīng)步入了信息化的時代了,而信息時代的代表便是網(wǎng)絡(luò)技術(shù)的日漸成熟,而現(xiàn)在網(wǎng)絡(luò)已經(jīng)和我們的生活緊密的聯(lián)系起來了,我們不敢想象沒有網(wǎng)絡(luò)我們的生活會像怎么樣,信息化時代的到來成為不可抗拒的潮流,人類文明正在進入一個嶄新的時代。因此,一個好的酒莊信息內(nèi)部管理系統(tǒng)也以方便、快捷、費用低、綠色環(huán)保的優(yōu)點正慢慢地進入這個行業(yè)和領(lǐng)域,將傳統(tǒng)的酒莊員工管理方式和酒莊信息的管理徹底的解脫出來,提高效率,減輕工人人員以往繁忙的工作,加速信息的更新速度,使酒莊管理員或企業(yè)管理層第一時間了解到酒莊的具體的信息,從而進一步的進行對酒莊用戶、信息、以及酒品信息進行調(diào)度等。本次針對這問題設(shè)計了這個系統(tǒng),本著科學(xué)化、規(guī)范化、系統(tǒng)化的原則,設(shè)計和開發(fā)了酒莊內(nèi)部信息管理系統(tǒng)。1.2研究的主要內(nèi)容
該酒莊內(nèi)部信息管理系統(tǒng)主要研究內(nèi)容是實現(xiàn)各級人員對系統(tǒng)各項模塊功能的管理、用戶信息管理、菜單信息管理、角色信息管理、紅酒類型管理、紅酒信息管理審核、管理員群發(fā)郵件和普通用戶發(fā)送郵件給管理員以及接受郵件和一些通知公告信息的查看瀏覽以及發(fā)布等。
二、相關(guān)技術(shù)介紹分析2.1spring技術(shù)
Spring框架是Java技術(shù)平臺上的一種常見開源應(yīng)用框架,提具有控制反轉(zhuǎn)IOC的容器。盡管長時間以來Spring框架自身對編程沒有限制,但是其在Java應(yīng)用中的頻繁使用讓它很受青睞,所有后來讓它作為EJB(EnterpriseJavaBeans)模型信息補充,javaSpring框架為開發(fā)提供了一系列技術(shù)解決方案,比如:利用控制反轉(zhuǎn)IOC的特性,通過實現(xiàn)依賴注入來實現(xiàn)管理整個對象生命周期容器化,利用java面向切面編程技術(shù)進行聲明式事務(wù)管理,整合各種持久化技術(shù)管理數(shù)據(jù)的訪問,提供了很多優(yōu)秀的Web框架方便開發(fā)、JAVASpring框架具有控制反轉(zhuǎn)IOC特性,IOC主要在方便項目維護和測試時期,它提供了一種通過Java反射機制對Java對象進行統(tǒng)一配置與各種管理的方法。JAVASpring框架通過容器管理對象的整個生命周期,spring容器通過掃描XML配置文件來配置對象,java開發(fā)者通過依賴注入查來獲得對象或查找對象。javaSpring框架具有面向切面編程(AOP)框架的功能。SpringAOP框架基于經(jīng)典的java設(shè)計模式--代理模式,可以同時運行時可配置;javaAOP框架主要技術(shù)針對模塊之間得交叉關(guān)注點進行模塊化管理。Spring框架的AOP功能僅提供基本的AOP特性功能,雖然無法與AspectJ框架相比較,但是通過與AspectJ框架的集成,也可以滿足基本功能需求。Spring框架下的事務(wù)管理、遠(yuǎn)程訪問等功能均可以通過使用Spring-AOP技術(shù)來實現(xiàn)。Spring事務(wù)管理為Java平臺開發(fā)者帶來了一種抽象的機制,使本地事物和全局事務(wù)、嵌套事務(wù)能夠與保存點在一起工作,而且可以在Java平臺的任何環(huán)境中工作、Spring集成了多種事務(wù),系統(tǒng)可以通過事務(wù)、XML以及Java注解進行事務(wù)配置,而且事務(wù)框架集成了消息傳遞和功能和緩存的功能。Spring的數(shù)據(jù)訪問解決了開發(fā)者在應(yīng)用程序中使用數(shù)據(jù)庫時遇見的常見困難。它不僅對Java:JDBC、iBATS、MyBATIs框架、Hibernate框架、Java數(shù)據(jù)對象(JDO)、和ApacheCayne等流行的數(shù)據(jù)訪問框架中提供技術(shù)支持。并且可以與Spring事務(wù)管理一起來使用,提供數(shù)據(jù)訪問抽象。javaSpring框架最開始是沒有打算構(gòu)建一個自己的WebMVC的框架,但是開發(fā)人員在開發(fā)設(shè)計過程中認(rèn)為現(xiàn)有的Struts框架的表現(xiàn)層和請求處理層之間、請求處理層和模型之間的分離還不夠徹底,所有創(chuàng)建了經(jīng)典的SpringMVC框架。
2.2SpringMVC技術(shù)
SpringMVC框架是一個經(jīng)典的MVC流程框架,通過實現(xiàn)ModelView以及Controller處理器來很好地將數(shù)據(jù)和業(yè)務(wù)以及展現(xiàn)層進行完全分離。從這樣的一個角度來說的話,SpringMVC、Struts以及Struts2非常的類似。SpringMVC總體設(shè)計是圍繞DispatcherServlet前端控制器來展開的,DispatcherServlet負(fù)責(zé)將前端請求發(fā)送到特定的handler映射。通過配置的handlermappingsviewresolutionlocale以及themeresolution來處理收到的請求并且轉(zhuǎn)到對應(yīng)的視圖處理器。SpringMVC請求業(yè)務(wù)處理的整體流程如下展示:
2.3mybatis技術(shù)MyBatis框架是底層JDBC訪問數(shù)據(jù)庫的封裝,它使得底層訪問數(shù)據(jù)庫的操作是透明的。MyBatis的操作是基于一個SQLSessionFactory實例。MyBatis框架通過各種配置文件與特定對象實體類的映射Mapper文件相關(guān)聯(lián),并且Mapper文件配置了每個對象到數(shù)據(jù)庫的SQL映射。當(dāng)與數(shù)據(jù)庫交互時,通過SQLSessionFactory實例獲取SQLSession對象并執(zhí)行SQL命令。訪問數(shù)據(jù)庫。
2.4JSP技術(shù)技術(shù)JSP(全稱JavaServers)是由Sun領(lǐng)導(dǎo)并創(chuàng)建的一種動態(tài)Web頁面JAVA技術(shù)。JSP部署在Web服務(wù)器上,動態(tài)生成HTML、XML和其他JAVAWeb頁面,以響應(yīng)客戶端發(fā)送的特定請求。并將數(shù)據(jù)返回給請求者根據(jù)發(fā)送的內(nèi)容request.JSP技術(shù)是基于JAVA語言的腳本語言,為用戶的HTTP、HTTPS請求提供服務(wù),并能處理復(fù)雜的業(yè)務(wù)數(shù)據(jù)和請求與其他JAVA相關(guān)程序在服務(wù)器上。JSP是將JAVA相關(guān)代碼和特定內(nèi)容更改嵌入到靜態(tài)頁面中,以靜態(tài)頁面為模板,動態(tài)生成部分內(nèi)容。JSP引入XML標(biāo)記,用于JSP動作調(diào)用函數(shù)。您還可以創(chuàng)建JSP動態(tài)標(biāo)記庫,并像使用標(biāo)準(zhǔn)HTML或XML標(biāo)記那樣使用它們。動態(tài)標(biāo)記庫可以增強功能和服務(wù)器性能,而不受跨平臺問題的限制。JavaJSP文件在運行時被編譯器轉(zhuǎn)換為更多原始的Servlet底層代碼。JSP編譯器可以將JSP文件編譯為用Java代碼編寫的Servlet低級代碼。然后編譯成計算機二進制代碼,可以由Java編譯器統(tǒng)一快速執(zhí)行,或直接編譯成二進制代碼數(shù)據(jù)。
2.5jQuery技術(shù)JQuery框架是一個快速、經(jīng)典和簡單的JavaScript前端框架計劃。它是繼Prototype之后的又一個優(yōu)秀的JavaScript代碼基礎(chǔ)框架。jQuery設(shè)計的目的是寫的少,做的多,也就是說寫的代碼少。它做的事情越多,就封裝了常見的JavaScript功能和代碼,并提供了一個簡單的JavaScript設(shè)計相關(guān)的模式,用于優(yōu)化HTML文檔操作、事件處理、CSS樣式化、動畫設(shè)計和Ajax請求交互。jQuery的核心特性包括:獨特的鏈接語法、簡短清晰的多功能對接接口、高效靈活的CSS選擇器以及對各種CSS選擇器的擴展和擴展能力、方便的插件擴展機制和豐富的插件管理功能。JQuery兼容IE8.0+、Firefox、谷歌等主流瀏覽器。2.6Mysql技術(shù)MySQL數(shù)據(jù)庫是與PHP、Java、c++/c#等主流編程語言技術(shù)緊密結(jié)合的安全、跨平臺、高效的輕量級數(shù)據(jù)庫系統(tǒng)。MySQL數(shù)據(jù)庫系統(tǒng)是由瑞典公司MySQLAB開發(fā)、發(fā)布和支持的。它于1995年由MySQL的最初開發(fā)者DavidAxmark和MichaelMontyWdenius創(chuàng)建。目前,MySQL數(shù)據(jù)庫在互聯(lián)網(wǎng)網(wǎng)站上被廣泛使用。由于MySQL數(shù)據(jù)庫體積小、速度快、整體擁有成本很低,尤其是在開源的特點上,很多互聯(lián)網(wǎng)公司都采用了MySQL數(shù)據(jù)庫來降低開發(fā)系統(tǒng)的成本。MySQL數(shù)據(jù)庫是世界上最快的SQL數(shù)據(jù)庫之一。因為它有許多其他數(shù)據(jù)庫沒有的特性,MySQL數(shù)據(jù)庫也是免費和開源的。用戶可以通過網(wǎng)絡(luò)直接從網(wǎng)站上下載MySQL數(shù)據(jù)庫并使用,無需支付任何費用。MySQL的特點下面是對MySQL特性的概述。1)強大的MySQL提供了多種數(shù)據(jù)庫存儲引擎,每個引擎都有自己的優(yōu)勢,適合不同的應(yīng)用,用戶可以選擇最合適的引擎來獲得最高的性能,可以處理每天訪問數(shù)億次以上的高強度搜索網(wǎng)站。MySQL5支持事務(wù)、視圖、存儲過程、觸發(fā)器等。2)跨平臺支持MySQL支持至少20個開發(fā)平臺,包括Linux、Windows、FreeBSD、IBMAx、AIX、FreeBSD等。這允許在任何平臺上編寫的程序無需對程序進行任何更改就可以進行移植。3)運行速度快速度是MySQL的一個顯著特征。在MySQL中,使用了極快的b樹磁盤表(MyISAM)和索引壓縮;通過使用優(yōu)化的單掃描多個連接,可以極快地實現(xiàn)連接;SQL函數(shù)使用高度優(yōu)化的類庫實現(xiàn),運行速度極快。4)支持面向?qū)ο驪HP支持混合編程。編程方法可分為三種:純面向?qū)ο?、純面向過程、面向面對象和面向過程混合。5)高安全靈活和安全的權(quán)限與密碼系統(tǒng),允許基本的主機身份驗證。連接服務(wù)器時,所有的密碼傳輸都是加密的,以保證密碼的安全性。6)成本低MySQL數(shù)據(jù)庫是一個完全免費的產(chǎn)品,用戶可以直接通過網(wǎng)絡(luò)下載。支持多種開發(fā)語言MySQL支持多種流行的編程語言,包括PHP,ASP。NET,Java,Eiffel,Python,Ruby,Tcl,C,c++,Perl,等等。8)數(shù)據(jù)庫存儲容量大MySQL數(shù)據(jù)庫的最大有效表大小通常是由操作系統(tǒng)對文件大小的限制決定的,而不是由MySQL的內(nèi)部限制。InnoDB存儲引擎將InnoDB表保存在一個可以從多個文件創(chuàng)建的表空間中。表空間的最大大小是64TB,它可以輕松處理擁有數(shù)千萬條記錄的大型數(shù)據(jù)庫。9)支持強大的內(nèi)置功能PHP提供了大量內(nèi)置函數(shù),這些函數(shù)幾乎涵蓋了Web應(yīng)用程序開發(fā)的每個方面。它具有內(nèi)置的數(shù)據(jù)庫連接操作、文件上傳和下載功能,MySQL數(shù)據(jù)庫支持大量的擴展庫和插件,MySQLI等,可以為JavaWeb應(yīng)用程序的快速開發(fā)提供很好的便利。MySQL數(shù)據(jù)庫的應(yīng)用MySQL數(shù)據(jù)庫是專門用于管理系統(tǒng)數(shù)據(jù)資源的計算機系統(tǒng)。數(shù)據(jù)可以以多種形式呈現(xiàn),如符號、圖形、圖像、文字、數(shù)字和聲音等。數(shù)據(jù)是所有計算機系統(tǒng)的對象。我們熟悉的方式處理是使一個文件,這個過程被編譯成一個程序文件,將參與程序的數(shù)據(jù)根據(jù)需求數(shù)據(jù)文件,然后使用程序調(diào)用、數(shù)據(jù)文件和程序文件保持一定的關(guān)系。隨著計算機應(yīng)用的迅速發(fā)展,這種檔案管理方法也暴露出其不足之處。例如,它使數(shù)據(jù)大眾化,不易遷移,在不同的網(wǎng)絡(luò)文件中存儲大量重復(fù)信息,浪費存儲空間,更新不便等。而數(shù)據(jù)庫系統(tǒng)可以解決上述基本問題。MySQL數(shù)據(jù)庫系統(tǒng)并不是從具體應(yīng)用出發(fā),是基于數(shù)據(jù)本身進行管理,它將數(shù)據(jù)保存在數(shù)據(jù)庫中,組織科學(xué)的管理,并借助數(shù)據(jù)庫管理系統(tǒng)進行管理。以它為橋梁,與各種應(yīng)用程序和應(yīng)用系統(tǒng)接口,方便快捷地使用數(shù)據(jù)庫中的數(shù)據(jù)。其實總體說來簡單,數(shù)據(jù)庫其實就是一組計算機語言指令整理后的數(shù)據(jù),存儲在一個或多個文件域內(nèi),而管理數(shù)據(jù)庫的軟件就叫做數(shù)據(jù)庫管理系統(tǒng)軟件。一個數(shù)據(jù)庫系統(tǒng)它可以分為數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)。主流數(shù)據(jù)庫軟件包括Oracle、Informix、Sybase、SQLServer、PostgreSQL、MySQL、Foxpro、Teradata等。數(shù)據(jù)庫在Web開發(fā)中的重要地位歸根結(jié)底,動態(tài)網(wǎng)站是數(shù)據(jù)的操作,我們平時瀏覽網(wǎng)頁的時候,會發(fā)現(xiàn)網(wǎng)頁的內(nèi)容會經(jīng)常變化,而頁面的主體結(jié)構(gòu)卻沒有變化,新聞是典型的。這是因為我們將新聞存儲在數(shù)據(jù)庫中。當(dāng)用戶瀏覽時,程序會根據(jù)用戶請求的新聞號從數(shù)據(jù)庫中讀取相應(yīng)的新聞,然后以特定的格式響應(yīng)用戶。Web系統(tǒng)的開發(fā)基本上離不開數(shù)據(jù)庫,因為一切都必須存儲在數(shù)據(jù)庫中。所謂動態(tài)網(wǎng)站就是基于數(shù)據(jù)庫開發(fā)的系統(tǒng),最重要的是數(shù)據(jù)管理,或者是我們在數(shù)據(jù)庫的開發(fā)過程中圍繞編寫的程序。因此,作為一名Web程序員,只有掌握了數(shù)據(jù)庫,才能開發(fā)軟件。三、需求分析和可行性分析3.1系統(tǒng)運行環(huán)境開發(fā)系統(tǒng):Windows7。JDK版本:JavaJDK1.8開發(fā)工具:springboot數(shù)據(jù)庫版本:mysql5數(shù)據(jù)庫可視化工具:navicatformysql服務(wù)器:apachetomcat7
其他工具:谷歌瀏覽器控制臺調(diào)整網(wǎng)頁布局
Postman接口工具進行接口測試3.2總體技術(shù)設(shè)計此系統(tǒng)需要java面向?qū)ο缶幊袒A(chǔ),數(shù)據(jù)庫知識和功能分析。根據(jù)目前階段所掌握的相關(guān)專業(yè)知識,以及這學(xué)期和之前學(xué)習(xí)掌握的java編程知識和數(shù)據(jù)庫應(yīng)用知識以及前端知識做出一個這樣的基于、springmvc輕量級框架網(wǎng)頁版的酒莊內(nèi)部信息管理系統(tǒng)平臺。3.3社會可行性分析在互聯(lián)網(wǎng)技術(shù)高速發(fā)展的今天,通過互聯(lián)網(wǎng)的傳播會讓企業(yè)更容易的創(chuàng)造更多的經(jīng)濟效益以及對紅酒信息需求的更好掌控以便及時求援,通過網(wǎng)頁版紅酒莊內(nèi)部信息管理平臺的實現(xiàn),有了更大的市場和信息,在這樣一個大環(huán)境下把資源統(tǒng)籌規(guī)化起來,就會獲得高效的信息和效益。3.4安全性可行性分析人們在使用網(wǎng)絡(luò)的時候越來越重視信息的安全性,這也促進了加密技術(shù)的發(fā)展,同時應(yīng)用加密技術(shù)能夠有效提升網(wǎng)絡(luò)信息的安全性。紅酒莊內(nèi)部信息管理平臺平臺采用了加密保護、頁面發(fā)送請求獲取數(shù)據(jù)采用關(guān)鍵部分采用post請求對數(shù)據(jù)傳輸?shù)谋Wo機制、避免請求數(shù)據(jù)暴露在瀏覽器上面、以及不同用戶具有不同權(quán)限操作通過這些安全性操作,保證系統(tǒng)的穩(wěn)定性以及可靠性。3.5經(jīng)濟可行性分析服務(wù)器端的安裝簡潔明了,客戶機無需再裝任何軟件,通過瀏覽器就可以直接訪問,可以直接接入Internet,無論您身在何處只要您可以訪問Internet都可以使用本系統(tǒng)。本系統(tǒng)對計算機配置的要求不高,企業(yè)機房更換下來的低配置電腦都可以完全滿足需要、所以在經(jīng)濟上具有完全的可行性。3.6法律可行性分析本系統(tǒng)是自行研究開發(fā)的網(wǎng)絡(luò)版紅酒莊內(nèi)部信息管理平臺,它是很有實際意義操作的系統(tǒng),java開發(fā)環(huán)境軟件和使用的mysql數(shù)據(jù)庫都是開源代碼,開發(fā)這個紅酒莊內(nèi)部信息管理平臺不同于開發(fā)普通的系統(tǒng)軟件,不存在侵權(quán)等問題,所有在法律上是允許可行的。
四、系統(tǒng)設(shè)計分析4.1系統(tǒng)模式架構(gòu)本系統(tǒng)經(jīng)典的采用B/S架構(gòu)(瀏覽器、服務(wù)器),是采用瀏覽器和服務(wù)器架構(gòu)模式設(shè)計的架構(gòu),隨著Internet技術(shù)的興起,對C/S架構(gòu)模式的一種改變升級或改進。目前,在該架構(gòu)的應(yīng)用下,用戶通過WWW.瀏覽器實現(xiàn)數(shù)據(jù)訪問和操作。一小部分事務(wù)邏輯在前端頁面實現(xiàn),主要業(yè)務(wù)事務(wù)邏輯在服務(wù)器端實現(xiàn),形成三層結(jié)構(gòu)MVC。B/S架構(gòu)是Web興起后主流的網(wǎng)絡(luò)架構(gòu)設(shè)計模式。Web瀏覽器是目前最重要的客戶端應(yīng)用軟件之一。該模式形成了一個統(tǒng)一的客戶端,將系統(tǒng)功能的所有核心部分集中在服務(wù)器上實現(xiàn)。簡化系統(tǒng)開發(fā)和維護。只要客戶端安裝了瀏覽器就可以操作,服務(wù)器端安裝了Oracle、MySQL、Sybase等數(shù)據(jù)庫。瀏覽器通過WebServer和數(shù)據(jù)庫獲取數(shù)據(jù)。簡化客戶端計算機的負(fù)載,降低系統(tǒng)維護和升級的成本和工作量,降低用戶的成本。
4.2系統(tǒng)層次架構(gòu)根據(jù)上述邏輯結(jié)構(gòu),系統(tǒng)大致可分為三層。根據(jù)處理過程的層次,將系統(tǒng)依次分為(1)顯示層:處理用戶界面、數(shù)據(jù)傳輸、信息采集等數(shù)據(jù)顯示。(2)應(yīng)用層:系統(tǒng)功能的邏輯處理層。它主要處理表示層發(fā)送的請求,在后臺進行處理,并將處理結(jié)果返回給表示層。(3)核心層:是系統(tǒng)運行核心層和應(yīng)用層的基礎(chǔ),提供應(yīng)用層權(quán)限控制、攔截器和數(shù)據(jù)讀取等功能。4.3用戶需求分析用戶主要分為管理員和普通用戶管理員:管理員可以對后臺數(shù)據(jù)進行管理、擁有最高權(quán)限、具體權(quán)限有登錄后進行用戶管理、角色管理、菜單管理、郵件群發(fā)管理、紅酒類型管理、紅酒信息管理以及通知公告的發(fā)布和修改密碼退出系統(tǒng)等操作。普通用戶:普通用戶只能聯(lián)系系統(tǒng)管理員添加賬戶信息、可以查看酒品信息、接收管理員發(fā)送的郵件以及發(fā)送郵件給管理員和查看通知公告信息
4.3系統(tǒng)功能詳情設(shè)計本系統(tǒng)主要設(shè)計采用Java語言開發(fā)教務(wù)系統(tǒng)、采用springmvc、spring為后臺框架、數(shù)據(jù)庫框架采用mybatis框架、前端采用jsp、jquery、js、css等技術(shù)主要模塊設(shè)計如下:用戶登錄管理模塊:用戶輸入賬號和密碼或手機號登錄按鈕進行登錄、根據(jù)輸入的賬號和密碼以及角色來判斷是否登錄成功以及給出對應(yīng)提示信息角色管理模塊:管理員可以對角色進行添加、修改、刪除和瀏覽、配置用戶角色和權(quán)限菜單顯示。部門管理模塊:管理員登錄后可以對部門進行管理、添加、輸入對應(yīng)的部門名稱等數(shù)據(jù)點擊完成添加、修改以及刪除操作。紅酒類型管理模塊:管理員登錄后可以對紅酒類型進行管理、添加、輸入對應(yīng)的紅酒類型名稱和備注說明完成添加、修改以及刪除紅酒類型等操作。紅酒信息管理模塊:管理員登錄后可以對紅酒信息進行管理、添加、輸入對應(yīng)的紅酒類型、名稱、存放時間、溫度、濕度、光線等完成添加、修改以及刪除紅酒信息等操作。郵件管理模塊:管理員登錄后可以對郵件信息進行管理、管理員可以群發(fā)郵件信息、可以接收平臺用戶發(fā)送的郵件、普通用戶可以接收管理員群發(fā)的郵件以及發(fā)送郵件給管理員通知公告模塊:管理員和登錄后可以對抗通知公告進行查看、修改、添加、輸入、公告標(biāo)題以及內(nèi)容等具體數(shù)據(jù)點擊添加完成申請、以及修改和刪除通知公告數(shù)據(jù)等操作、普通用戶可以查看通知公告。修改密碼和退出管理模塊:管理員登錄后可以對自己的賬號密碼進行修改、輸入原密碼驗證成功后連續(xù)2次數(shù)據(jù)相同新密碼就可以修改成功。管理員點擊注銷退出跳轉(zhuǎn)到登錄頁面重新登陸。4.4數(shù)據(jù)整體流程分析
4.5源碼主要架構(gòu)
五、程序設(shè)計和實現(xiàn)5.1程序主要類4.1.1用戶管理員類/***用戶ID*/ @TableId privateLonguserId; /***用戶名*/ @NotBlank(message="用戶名不能為空",groups={AddGroup.class,UpdateGroup.class}) privateStringusername; /***密碼*/ @NotBlank(message="密碼不能為空",groups=AddGroup.class) @JsonProperty(access=JsonProperty.Access.WRITE_ONLY) privateStringpassword; /***鹽*/ privateStringsalt; /***郵箱*/ @NotBlank(message="郵箱不能為空",groups={AddGroup.class,UpdateGroup.class}) @Email(message="郵箱格式不正確",groups={AddGroup.class,UpdateGroup.class}) privateStringemail; /***手機號*/ privateStringmobile; /***狀態(tài)0:禁用1:正常*/ privateIntegerstatus; /***角色I(xiàn)D列表*/ @TableField(exist=false) privateList<Long>roleIdList; /***創(chuàng)建時間*/ privateDatecreateTime; /***部門ID*/ @NotNull(message="部門不能為空",groups={AddGroup.class,UpdateGroup.class}) privateLongdeptId;;4.1.2菜單路徑類/***菜單ID*/ @TableId privateLongmenuId; /***父菜單ID,一級菜單為0*/ privateLongparentId; /***父菜單名稱*/ @TableField(exist=false) privateStringparentName; /***菜單名稱*/ privateStringname; /***菜單URL*/ privateStringurl; /***授權(quán)(多個用逗號分隔,如:user:list,user:create)*/ privateStringperms; /***類型0:目錄1:菜單2:按鈕*/ privateIntegertype; /***菜單圖標(biāo)*/ privateStringicon; /***排序*/ privateIntegerorderNum; /***ztree屬性*/ @TableField(exist=false) privateBooleanopen; @TableField(exist=false) privateList<?>list;;4.1.3菜單角色類/***角色I(xiàn)D*/ @TableId privateLongroleId; /***角色名稱*/ @NotBlank(message="角色名稱不能為空") privateStringroleName; /***備注*/ privateStringremark; /** *部門ID*/ @NotNull(message="部門不能為空") privateLongdeptId; /***部門名稱*/ @TableField(exist=false) privateStringdeptName; @TableField(exist=false) privateList<Long>menuIdList; @TableField(exist=false) privateList<Long>deptIdList; /***創(chuàng)建時間*/ @JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="GMT+8") privateDatecreateTime;;4.1.4紅酒類型類@TableIdprivatestaticfinallongserialVersionUID=1L;@TableIdprivateIntegerid;privateStringname;privateStringbz;4.1.5紅酒信息類@TableIdprivateIntegerid;privateStringmatterType;privateStringname;privateStringytu;privateintnum;privateStringzyss;privateStringscTime;privateStringsccj;4.1.6郵件詳情類@TableIdprivateIntegerid;privateStringsendUsername;privateIntegersendUserid;privateIntegerreceiptUserid;privateStringreceiptUsername;privateDatesendTime;privateStringsendTitle;privateStringcontent;privateStringty;5.2主要功能設(shè)計實現(xiàn)5.2.登錄模塊和系統(tǒng)首頁:用戶輸入網(wǎng)址http://localhost:8080/renren-admin/login.html跳轉(zhuǎn)到登錄頁面、輸入登錄賬號和密碼以及驗證碼前端js登錄布局輸入框和代碼編寫。發(fā)送loginajax請求跳轉(zhuǎn)到后臺<pclass="login-box-msg">用戶登錄</p><divv-if="error"class="alertalert-dangeralert-dismissible"><h4style="margin-bottom:0px;"><iclass="fafa-exclamation-triangle"></i>{{errorMsg}}</h4></div><divclass="form-grouphas-feedback"><inputtype="text"class="form-control"v-model="username"placeholder="賬號"><spanclass="glyphiconglyphicon-userform-control-feedback"></span></div><divclass="form-grouphas-feedback"><inputtype="password"class="form-control"v-model="password"placeholder="密碼"><spanclass="glyphiconglyphicon-lockform-control-feedback"></span><divclass="form-grouphas-feedback"><inputtype="text"class="form-control"v-model="captcha"@keyup.enter="login"placeholder="驗證碼"><spanclass="glyphiconglyphicon-warning-signform-control-feedback"></span><divclass="form-grouphas-feedback"><imgalt="如果看不清楚,請單擊圖片刷新!"class="pointer":src="src"@click="refreshCode">
后臺主要代碼實現(xiàn):/** *登錄 */ @ResponseBody @RequestMapping(value="/sys/login",method=RequestMethod.POST) publicRlogin(Stringusername,Stringpassword,Stringcaptcha){ Stringkaptcha=ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY); if(!captcha.equalsIgnoreCase(kaptcha)){ returnR.error("驗證碼不正確"); } try{ Subjectsubject=ShiroUtils.getSubject(); UsernamePasswordTokentoken=newUsernamePasswordToken(username,password);//md5+Jiayan subject.login(token); }catch(UnknownAccountExceptione){ returnR.error(e.getMessage()); }catch(IncorrectCredentialsExceptione){ returnR.error("賬號或密碼不正確"); }catch(LockedAccountExceptione){ returnR.error("賬號已被鎖定,請聯(lián)系管理員"); }catch(AuthenticationExceptione){ returnR.error("賬戶驗證失敗"); } returnR.ok(); 登錄完成之后跳轉(zhuǎn)到系統(tǒng)首頁5.3用戶添加:點擊系統(tǒng)管理》》用戶添加。點擊添加按鈕執(zhí)行添加。錄入選擇添加的相關(guān)信息前端頁面主要樣式代碼設(shè)計:后臺代碼設(shè)計:/** *保存用戶 */ @SysLog("保存用戶") @RequestMapping("/save") @RequiresPermissions("sys:user:save") publicRsave(@RequestBodySysUserEntityuser){ ValidatorUtils.validateEntity(user,AddGroup.class); sysUserService.saveUser(user); returnR.ok(); }5.4紅酒信息列表展示:前段主要設(shè)計代碼:colModel:[{label:'id',name:'id',index:'id',width:30},{label:'紅酒類型',name:'matterType',index:'matterType',width:100},{label:'紅酒名稱',name:'name',index:'name',width:180},{label:'存放時間',name:'ytu',index:'ytu',width:100},{label:'庫存數(shù)量',name:'num',index:'num',width:80},{label:'溫度',name:'zyss',index:'zyss',width:120},{label:'濕度',name:'scTime',index:'scTime',width:120},{label:'光線',name:'sccj',index:'sccj'},5.5添加紅酒詳情:后臺主要代碼設(shè)計:@RequestMapping("/save")publicRsave(@RequestBodyMattermatter){MatterService.save(matter);returnR.ok();}5.6郵件列表展示:前段代碼分析:datatype:"json",colModel:[{label:'id',name:'id',index:'id',width:30},{label:'郵件標(biāo)題',name:'sendTitle',index:'sendTitle',width:100},{label:'郵件內(nèi)容',name:'content',index:'content',width:100},{label:'發(fā)送人',name:'sendUsername',index:'sendUsername',width:80},{label:'發(fā)送時間',name:'sendTime',index:'sendTime',width:80},],}5.7郵件發(fā)送:前端主要樣式:<divclass="form-group"><divclass="col-sm-2control-label">id</div><divclass="col-sm-10"><inputtype="text"class="form-control"v-model="matterApply.id"placeholder="id"/></div></div><divclass="form-group"><divclass="col-sm-2control-label">請選擇申請區(qū)域</div><divclass="col-sm-10"><selectclass="form-control"name="applyArea"id="applyArea"><option>請選擇</option></select></div></div><divclass="form-group"><divclass="col-sm-2control-label">請選擇紅酒類型</div><divclass="col-sm-10"><selectclass="form-control"name="name"id="name"><option>請選擇</option></select></div></div><divclass="form-group"><divclass="col-sm-2control-label">紅酒名稱</div><divclass="col-sm-10"><inputtype="text"class="form-control"v-model="matterApply.matterName"placeholder="紅酒名稱"/></div></div><divclass="form-group"><divclass="col-sm-2control-label">申請數(shù)量</div><divclass="col-sm-10"><inputtype="text"class= 5.8紅酒類型列表@AutowiredMatterTypeServiceImplMatterTypeServiceImpe;@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params){PageUtilspage=MatterTypeService.queryPage(params);returnR.ok().put("page",page);}
5.9紅酒類型添加后臺代碼實現(xiàn):@RequestMapping("/list_purchaseApply")publicRlist_purchaseApply(@RequestParamMap<String,Object>params){params.put("ty","2");PageUtilspage=MatterApplyService.queryPage(params);returnR.ok().put("page",page);}5.8紅酒類型添加后臺代碼實現(xiàn):@RequestMapping("/save")publicRsave(@RequestBodyMatterTypematterType){MatterTypeService.save(matterType);returnR.ok();}5.8通知公告列表后臺代碼實現(xiàn):@Override@AutowiredprivateInformmServiceinformmService;@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object>params){PageUtilspage=informmService.queryPage(params);returnR.ok().put("page",page);}returnnewPageUtils(page);}5.9修改密碼/** *修改登錄用戶密碼 */ @SysLog("修改密碼") @RequestMapping("/password") publicRpassword(Stringpassword,StringnewPassword){ Assert.isBlank(newPassword,"新密碼不為能空"); //原密碼 password=ShiroUtils.sha256(password,getUser().getSalt()); //新密碼 newPassword=ShiroUtils.sha256(newPassword,getUser().getSalt()); //更新密碼 booleanflag=sysUserService.updatePassword(getUserId(),password,newPassword); if(!flag){ returnR.error("原密碼不正確"); } returnR.ok(); } 5.10數(shù)據(jù)庫連接配置spring:datasource:type:com.alibaba.druid.pool.DruidDataSourcedruid:driver-class-name:com.mysql.jdbc.Driverurl:jdbc:mysql://localhost:3306/renren_kywz?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghaiusername:rootpassword:123456initial-size:10max-active:100min-idle:10max-wait:60000pool-prepared-statements:truemax-pool-prepared-statement-per-connection-size:20time-between-eviction-runs-millis:60000min-evictable-idle-time-millis:300000#Oracle需要打開注釋#validation-query:SELECT1FROMDUALtest-while-idle:truetest-on-borrow:falsetest-on-return:falsestat-view-servlet:enabled:trueurl-pattern:/druid/*#login-username:admin#login-password:adminfilter:stat:log-slow-sql:trueslow-sql-millis:1000merge-sql:falsewall:config:multi-statement-allow:true六、數(shù)據(jù)庫設(shè)計6.1數(shù)據(jù)三范式:一、第一范式1NF是對屬性的原子性,要求屬性具有原子性,不可再分解;二、第二范式2NF是對記錄的唯一性,要求記錄有唯一標(biāo)識,即實體的唯一性,三、第三范式3NF是對字段的冗余性,要求任何字段不能由其他字段派生出來,數(shù)據(jù)庫采用mysql5版本、滿足數(shù)據(jù)庫設(shè)計三范式。編碼采用utf8--UTF-8Unicode排序規(guī)則采用utf8_general_ci6.2表ER圖6.3用戶表設(shè)計名稱字段名數(shù)據(jù)類型長度可否為空是否主鍵用戶iduser_idint8否是用戶名稱usernamevarchar50否否密碼passwordvarchar500否否密碼加鹽saltvarchar500否否手機號mobileblob500否否部門iddept_idint500否否6.4菜單表設(shè)計名稱字段名數(shù)據(jù)類型長度可否為空是否主鍵菜單idmenu_idint11否是父級idparent_idint50否否菜單名稱namevarchar255否否菜單路徑urlvarchar255否否權(quán)限permsblob255否否類型typeint11否否排序orderint11否否6.5角色表設(shè)計名稱字段名數(shù)據(jù)類型長度可否為空是否主鍵角色idrole_idint11否是角色名稱role_namevarchar50否否備注信息remarkvarchar255否否部門iddept_idint11否否創(chuàng)建時間create_timedate0否否6.6紅酒類型表設(shè)計名稱字段名數(shù)據(jù)類型長度可否為空是否主鍵類型ididint11否是類型名稱name否255否否備注信息bzvarchar255否否6.7紅酒表設(shè)計名稱字段名數(shù)據(jù)類型長度可否為空是否主鍵ididint11否是紅酒類型matter_type varchar255否否紅酒名稱namevarchar255否否存放時間ytuvarchar255否否存款數(shù)量numvarchar255否否溫度zyssvarchar255否否濕度sc_timevarchar255否否光線sccjvarchar255否否6.8郵件信息表設(shè)計名稱字段名數(shù)據(jù)類型長度可否為空是否主鍵ididint11否是發(fā)送者姓名send_usernameint255否否發(fā)送者idsend_useridvarchar255否否接受者姓名receipt_useridvarchar255否否接受者idreceipt_usernamevarchar255否否發(fā)送時間send_t
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度大棚蔬菜種植與農(nóng)業(yè)休閑農(nóng)業(yè)項目合作協(xié)議2篇
- 二零二五年度南京市房地產(chǎn)經(jīng)紀(jì)行業(yè)勞務(wù)派遣及銷售服務(wù)合同
- 2025年度豬場生物安全防護與防疫物資供應(yīng)合同4篇
- 二手房地產(chǎn)交易安全保障與監(jiān)管合同
- 2025年水果采摘與農(nóng)家樂特色農(nóng)產(chǎn)品銷售合同3篇
- 二零二五年度企業(yè)股權(quán)激勵計劃轉(zhuǎn)讓合同
- 2025年大數(shù)據(jù)處理與分析軟件服務(wù)采購協(xié)議3篇
- 二零二五年建筑資質(zhì)掛靠與工程進度調(diào)整服務(wù)協(xié)議3篇
- 2025年度二手房買賣合同附加物業(yè)管理費結(jié)算協(xié)議3篇
- 二零二五年度大型商業(yè)綜合體工程分包管理協(xié)議2篇
- 四川省高職單招電氣技術(shù)類《電子基礎(chǔ)》歷年考試真題試題庫(含答案)
- 中級半導(dǎo)體分立器件和集成電路裝調(diào)工技能鑒定考試題庫(含答案)
- 2024年江西生物科技職業(yè)學(xué)院單招職業(yè)技能測試題庫帶解析答案
- 橋本甲狀腺炎-90天治療方案
- (2024年)安全注射培訓(xùn)課件
- 2024版《建設(shè)工程開工、停工、復(fù)工安全管理臺賬表格(流程圖、申請表、報審表、考核表、通知單等)》模版
- 部編版《道德與法治》六年級下冊教材分析萬永霞
- 酒店人防管理制度
- 油田酸化工藝技術(shù)
- 上海高考英語詞匯手冊列表
- 移動商務(wù)內(nèi)容運營(吳洪貴)任務(wù)五 其他內(nèi)容類型的生產(chǎn)
評論
0/150
提交評論