版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.1咖啡下午茶網(wǎng)店系統(tǒng)設(shè)計(jì)報(bào)告1 系統(tǒng)分析1.1 需求分析1系統(tǒng)概述在如今這個(gè)快速開展的社會,商家建立自己的已經(jīng)成為一種必要的競爭手段。1巨大的宣傳作用。網(wǎng)絡(luò)的無所不在和方便快捷將改變我們過去的被動(dòng)的宣傳和經(jīng)營模式,消費(fèi)者可以在網(wǎng)上通過直接點(diǎn)擊和友好連接的形式瀏覽我們的,這樣可以挖掘出大量的潛在客戶;可以在上發(fā)布自己的商品和供求信息。2獲得詳實(shí)有效的信息。我們可以根據(jù)消費(fèi)者的消費(fèi)情況及時(shí)的了解到商品的銷售情況,例如哪些商品的銷量比較好、哪些商品的銷量不太好、消費(fèi)者有哪些建議,可以根據(jù)這些情況做出及時(shí)的調(diào)整。3是一種潛在的無形資產(chǎn)。的建立,將使得商家的知名度大增,從而擴(kuò)大了無形資產(chǎn),并且獲得其他
2、形式得不到的品牌效應(yīng)。本文所設(shè)計(jì)的這個(gè)網(wǎng)店系統(tǒng)主要針對的用戶是白領(lǐng)們??旃?jié)奏的生活模式如今已是時(shí)代潮流,忙忙碌碌充滿著現(xiàn)實(shí)的方方面面。在工作的間隙,抿上一口精品咖啡似乎也成為了白領(lǐng)們放松肢體、愉悅心情的重要途徑。大局部白領(lǐng)由于工作的原因喝咖啡,主要是因?yàn)樗麄兊墓ぷ魈攸c(diǎn)以及咖啡的好處:1大局部喜歡喝咖啡的白領(lǐng)都是因?yàn)榭Х饶軌蛱嵘瘛R驗(yàn)榘最I(lǐng)根本因?yàn)楣ぷ鞯脑蚨鴮?dǎo)致需要吃些東西來提神,而咖啡里面所含有的咖啡因是具有強(qiáng)大的提神效果。所以白領(lǐng)也根本會在上班的時(shí)候沖一杯咖啡來提神,好提高自己的工作效率。2有實(shí)驗(yàn)說明,咖啡因是可以幫助我們預(yù)防輻射的危害,而現(xiàn)在的白領(lǐng)根本是需要天天對著電腦,這樣就要經(jīng)常受到電
3、腦輻射的危害,而這個(gè)時(shí)候如果喝杯咖啡的話就可以預(yù)防電腦輻射的危害了。3白領(lǐng)因?yàn)榻?jīng)常坐著上班,這樣就很容易因?yàn)橄涣级鴮?dǎo)致身體的脂肪一直累積從而變胖。而咖啡是具有幫助消化的功能,喝一杯咖啡就可以提高我們的消化能力,快速分解體的脂肪。這個(gè)系統(tǒng)的目標(biāo)就是讓這些消費(fèi)者在辦公室里就可以購置到自己想要的咖啡以及食物,這樣可以使得他們的消費(fèi)變得簡便省時(shí),從而可以增加店面的銷售量、起到一定的宣傳效果、及時(shí)的對店面的經(jīng)營作出調(diào)整。系統(tǒng)功能分析咖啡下午茶的主要功能就是能給這些用戶更好的展示本店的產(chǎn)品以及一些新聞動(dòng)態(tài),從而提高銷售量,所以這個(gè)系統(tǒng)主要提供如下功能。用戶能夠使用本瀏覽、查詢飲品,瀏覽本店通告。普通用
4、戶只能瀏覽飲品信息。瀏覽方式分為三種:按類別瀏覽、按條件瀏覽、查詢飲品。普通用戶只能瀏覽本店通告。普通用戶通過注冊成為注冊用戶,注冊后的用戶可登錄。登陸后可以修改注冊材料。管理員可以管理飲品分類、管理飲品、添加飲品時(shí)能夠上傳飲品的圖片。管理員可以管理對用戶資料進(jìn)展修改,可以刪除用戶。其他需求分析根據(jù)用戶對本系統(tǒng)的要求,確定系統(tǒng)在響應(yīng)時(shí)間、可靠性等方面有較高的性能要求。界面需求頁面的主題要突出、布局合理;頁面具有明確的導(dǎo)航指示,便于理解、方便用戶使用;界面色彩和諧自然。響應(yīng)時(shí)間需求進(jìn)入本系統(tǒng)進(jìn)展任何操作的時(shí)候,系統(tǒng)應(yīng)該及時(shí)的進(jìn)展反響,反映時(shí)間在5秒以。可靠性需求系統(tǒng)應(yīng)保證20人可以同時(shí)在客戶端登
5、錄,系統(tǒng)正常運(yùn)行,正確提示相關(guān)容。開放性需求系統(tǒng)應(yīng)具有靈活性,以適應(yīng)將來功能擴(kuò)展的需求。1.2 技術(shù)分析1. 系統(tǒng)技術(shù)選型在系統(tǒng)的實(shí)現(xiàn)上,使用的技術(shù)是SHSpring+Hibernate架構(gòu)。Spring 是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)立的。它基于依賴注入和面向方面技術(shù),大降低了應(yīng)用開發(fā)的難度與復(fù)雜度,提高了開發(fā)的速度,為企業(yè)級應(yīng)用提供了一個(gè)有效的輕量級的解決方案。Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)展了非常輕量級的對象封裝,它將POJO與數(shù)據(jù)庫表建立映射關(guān)系,是一個(gè)全自動(dòng)的orm框架,hibernate可以自動(dòng)生成SQL語句,自動(dòng)執(zhí)行,使
6、得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。數(shù)據(jù)層借助Hibernate JPA實(shí)現(xiàn)。Hibernate是比較成熟的ORM技術(shù),利用Hibernate可以簡化了數(shù)據(jù)庫編程,容易從面向?qū)ο蟮慕嵌仍O(shè)計(jì)程序。新的Dao設(shè)計(jì)模式,減少了業(yè)務(wù)層與底層數(shù)據(jù)庫操作的耦合性。JPA的使用,使得ORM持久化技術(shù)更加規(guī)。Spring主要起到集成系統(tǒng)各組成局部的作用。它基于借助于IoS技術(shù),提供了強(qiáng)大的Bean工廠容器,通過配置的方式描述對象及其依賴關(guān)系,降低了模塊間的依賴性,簡化了程序設(shè)計(jì)。同時(shí),Spring 提供的AOP,是對面向?qū)ο蟪绦蛟O(shè)計(jì)的重要補(bǔ)充,借助于AOP技術(shù),可以方便地實(shí)現(xiàn)系統(tǒng)級的功
7、能,如事務(wù)管理和日志處理等。通過Spring減低的了系統(tǒng)的復(fù)制性,使系統(tǒng)便于維護(hù)和擴(kuò)大。開發(fā)與運(yùn)行環(huán)境NetBeans 8.0.2作為開發(fā)環(huán)境; 界面采用JSP開發(fā);MySQL作為后臺數(shù)據(jù)庫;Tomcat 8.0作為效勞器。2 系統(tǒng)設(shè)計(jì)2.1總體構(gòu)造系統(tǒng)的功能構(gòu)造如圖1所示。圖1 系統(tǒng)的功能構(gòu)造圖2 客戶端用例圖圖3 后臺維護(hù)端用例圖2.2功能模塊劃分表1給出了該系統(tǒng)的功能模塊。表1 功能劃分表模塊名子功能描述前臺功能用戶注冊普通用戶在注冊頁填寫資料后成為注冊用戶用戶登錄提供用戶名、密碼后可以登錄系統(tǒng)瀏覽飲品通過點(diǎn)擊標(biāo)題可以查看飲品的詳細(xì)信息;可以分類瀏覽飲品瀏覽通告通過點(diǎn)擊標(biāo)題可以查看通告的
8、詳細(xì)信息后臺維護(hù)用戶管理管理員可以瀏覽用戶、查看用戶詳細(xì)信息、刪除用戶飲品管理管理員可以瀏覽飲品、查看飲品詳細(xì)信息、增加飲品、刪除飲品通告管理管理員可以瀏覽通告、查看通告詳細(xì)信息、增加通告、刪除通告分類管理管理員可以增加分類、刪除分類2.3 數(shù)據(jù)構(gòu)造設(shè)計(jì)根據(jù)該系統(tǒng)的要求,主要設(shè)計(jì)的數(shù)據(jù)有用戶、飲品分類、飲品、通告。為此建立4個(gè)數(shù)據(jù)表來存儲對應(yīng)的數(shù)據(jù)。數(shù)據(jù)庫的邏輯設(shè)計(jì)用戶表所包含的字段如表2所示。表2 用戶表名稱描述數(shù)據(jù)類型大小約束默認(rèn)值User_id用戶編號int/AI PKUser_name用戶名稱varchar200NNUser_pwd密碼varchar200NNUser_phonevar
9、char200NNUser_emailvarchar200NNUser_addr地址varchar200NNUser_datetime注冊時(shí)間timestamp/NN當(dāng)前時(shí)間飲品分類表所包含的字段如表3所示。表3 飲品分類表名稱描述數(shù)據(jù)類型大小約束默認(rèn)值cat_id分類編號int/AI PKcat_name分類名稱varchar200NN UN飲品表所包含的的字段如表4所示。表4 飲品表名稱描述數(shù)據(jù)類型大小約束默認(rèn)值drink_id飲品編號int/AI PKdrink_name飲品名稱varchar200NNcat_id分類編號int/NN FKdrink_price價(jià)格float/NNdri
10、nk_pic圖像varchar200NNdrink_desc簡介te*t/通告表所包含的的字段如表5所示。表5 通告表名稱描述數(shù)據(jù)類型大小約束默認(rèn)值News_id通告編號int/AI PKNews_title通告標(biāo)題varchar254NNNews_content通告容te*t/NNNews_datetime發(fā)表時(shí)間timestamp/NN當(dāng)前時(shí)間數(shù)據(jù)庫的物理設(shè)計(jì)系統(tǒng)數(shù)據(jù)庫命名為cs,cs_category(飲品分類),cs_drink(飲品),cs_user(用戶),cs_news(通告)。cs_category(飲品分類):cs_drink(飲品):cs_user(用戶):cs_news(
11、通告):建立的數(shù)據(jù)庫的SQL腳本如下所示。create database cs;use cs;create table cs_user( user_id int auto_increment primary key, user_name varchar(200), user_pwd varchar(200), user_phone varchar(200), user_email varchar(200), user_addr varchar(200), user_datetime timestamp);create table cs_category( cat_id int auto_inc
12、rement primary key, cat_name varchar(200);create table cs_drink( drink_id varchar(200) primary key, cat_id int, drink_name varchar(200), drink_price varchar(200), drink_pic varchar(200), drink_desc te*t);create table cs_news( news_id int auto_increment primary key, news_title varchar(254), news_cont
13、ent te*t, news_datetime timestamp);insert into cs_user(user_name,user_pwd) values(mayafang,123456);2.4 架構(gòu)選擇與程序構(gòu)造1. 架構(gòu)設(shè)計(jì)系統(tǒng)采用比較流行的封層構(gòu)造不包括后臺數(shù)據(jù)庫,總體上分為表現(xiàn)層、業(yè)務(wù)邏輯層和數(shù)據(jù)層。表現(xiàn)層。表現(xiàn)層位于最外層最上層,離用戶最近。用于顯示數(shù)據(jù)和承受用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。對流入的數(shù)據(jù)的正確性和有效性負(fù)責(zé),對呈現(xiàn)樣式負(fù)責(zé),對呈現(xiàn)有好的錯(cuò)誤信息負(fù)責(zé)。表現(xiàn)層進(jìn)一步劃分為視圖層和控制層,使得頁面與控制邏輯別離,程序構(gòu)造清晰,便于重用和維護(hù)。業(yè)務(wù)邏
14、輯層。業(yè)務(wù)邏輯層處于數(shù)據(jù)層和表現(xiàn)層中間,在數(shù)據(jù)交換中起到承上啟下的作用。業(yè)務(wù)邏輯層的設(shè)計(jì)對于一個(gè)支持可擴(kuò)展的架構(gòu)尤為關(guān)鍵,因?yàn)樗缪萘藘蓚€(gè)不同的角色:對于數(shù)據(jù)層而言,它是調(diào)用者;對于表現(xiàn)層而言,它是被調(diào)用者。依賴于被依賴的關(guān)系都糾結(jié)在業(yè)務(wù)邏輯層上。它負(fù)責(zé)系統(tǒng)領(lǐng)域業(yè)務(wù)的處理,負(fù)責(zé)邏輯性數(shù)據(jù)的生產(chǎn)、處理及轉(zhuǎn)換。數(shù)據(jù)層。其功能主要是負(fù)責(zé)數(shù)據(jù)庫的,可以數(shù)據(jù)庫系統(tǒng)、二進(jìn)制文本、文本文檔或者是*ML文檔。簡單的說就是實(shí)現(xiàn)對數(shù)據(jù)表的Select、Insert、Update、Delete的操作。如果要參加ORM的元素,則就會包括對象和數(shù)據(jù)表之間的映射,以及對向?qū)嶓w的持久性。對數(shù)據(jù)的正確性和可用性不負(fù)責(zé),對數(shù)據(jù)
15、的用途不了解,不負(fù)擔(dān)任何業(yè)務(wù)邏輯。在技術(shù)實(shí)現(xiàn)上選擇SHSpring+Hibernate架構(gòu)。2. 程序構(gòu)造設(shè)計(jì)為了實(shí)現(xiàn)系統(tǒng)便于維護(hù)和擴(kuò)展的目標(biāo),系統(tǒng)采用分層架構(gòu),整體上分四層:視圖層、控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)層。視圖層放在【Cs頁】文件夾下。為了便于管理,劃分如下文件夾:user用戶,category(分類),drink產(chǎn)品,news通告,css樣式表,images圖像,script腳本等文件夾。如圖4所示。 圖4 文件夾構(gòu)造其他層均放在源包下。在源包下建立cs.action控制類包,cs.idao數(shù)據(jù)層接口包,cs.dao數(shù)據(jù)層實(shí)現(xiàn)類包,cs.iservice業(yè)務(wù)邏輯層接口包,cs.serv
16、ice業(yè)務(wù)邏輯層實(shí)現(xiàn)類包,cs.model數(shù)據(jù)模型或?qū)嶓w類包等包。如圖5所示。圖5 包構(gòu)造 3 系統(tǒng)詳細(xì)設(shè)計(jì)3.1 領(lǐng)域模型設(shè)計(jì)1. 實(shí)體模型類設(shè)計(jì)系統(tǒng)主要包含如下數(shù)據(jù)模型,也稱為實(shí)體模型類:CsUser用戶類、CsCategory商品分類、CsDrink商品、CsNews(通知)。這些類均存放在Cs.model包下。CsUser類public class CsUser private Integer userId; private String userName; private String userPwd; private String userPhone; private String
17、 userEmail; private String userAddr; private Date userDatetime;./省略方法屬性CsCategory類public class CsCategory implements java.io.Serializable private Integer catId; private String catName;CsDrink類public class CsDrink implements java.io.Serializable private String drinkId; private CsCategory category; pr
18、ivate String drinkName; private String drinkDesc; private String drinkPrice; private String drinkPic;CsNews類public class CsNews private Integer newsId; private String newsTitle; private String newsContent; private Date newsDatetime;2.業(yè)務(wù)邏輯層接口設(shè)計(jì)業(yè)務(wù)邏輯層接口表達(dá)了業(yè)務(wù)功能的需要,它反映了系統(tǒng)所具有的業(yè)務(wù)功能,業(yè)務(wù)邏輯接口放在cs.iservice包下。用戶
19、業(yè)務(wù)邏輯層接口ICsUserService public interface ICsUserService void addUser(CsUser user); void editUser(CsUser user); void deleteUser(Integer userId); CsUser findUser(Integer userId); CsUser findUser(String userName,String userPwd); List findAll(); List findByPage(String userName,Integer pageSize,Integer pag
20、eNo); int findAllCount(String userName);商品分類業(yè)務(wù)邏輯層接口ICsCategoryService public interface ICsCategoryService void addCategory(CsCategory category); void editCategory(CsCategory category); void deleteCategory(Integer catId); CsCategory findCategory(Integer catId); List findAll(); List findByPage(Integer
21、 pageSize,Integer pageNo); int findAllCount();飲品業(yè)務(wù)邏輯層接口ICsDrinkService public interface ICsDrinkService void addDrink(CsDrink drink); void editDrink(CsDrink drink); void deleteDrink(String drinkId); CsDrink findDrink(String drinkId); List findAll(); List findSome(String drinkName,Integer pageSize,In
22、teger pageNo); int findAllCount(); int findSomeCount(String drinkName);通告業(yè)務(wù)邏輯接口ICsNewsServicepublic interface ICsNewsService void addNews(CsNews news); void editNews(CsNews news); void deleteNews(String newsId); CsNews findNews(String newsId); List findAll(); List findSome(String newsTitle,Integer p
23、ageSize,Integer pageNo); int findAllCount(); int findSomeCount(String newsTitle);3.1.3數(shù)據(jù)層接口設(shè)計(jì)數(shù)據(jù)層實(shí)現(xiàn)對數(shù)據(jù)庫的,其接口定義了數(shù)據(jù)的方法。先建立一個(gè)基接口IbBaseDao封裝共有的操作,該接口使用了泛型,泛型的兩個(gè)參數(shù)T和ID分別表示操作的具體類和主鍵類型。其他接口繼承基接口。數(shù)據(jù)層接口放在cs.idao下。數(shù)據(jù)層基接口IBaseDaopublic interface IBaseDao void insert(T obj); void update(T obj); void delete(D id)
24、; T selectById(D id); List selectAll(); int selectCount(); 用戶數(shù)據(jù)層接口ICsUserDaopublic interface ICsUserDao e*tends IBaseDao List selectByPage(String userName,Integer pageSize,Integer pageNO); CsUser selectUser(String userName,String userPwd); Integer selectCount(String userName);商品分類數(shù)據(jù)層接口ICsCategoryDao
25、public interface ICsCategoryDao e*tends IBaseDao List selectByPage(Integer pageSize,Integer pageNO);飲品數(shù)據(jù)層接口ICsDrinkDaopublic interface ICsDrinkDao e*tends IBaseDao List selectSome(String drinkName,Integer pageSize,Integer pageNo); int selectSomeCount(String drinkName);通告數(shù)據(jù)層接口ICsNewsDao public interf
26、ace ICsNewsDao e*tends IBaseDao List selectSome(int num); List selectSome(String newsTitle,Integer pageSize,Integer pageNo); int selectSomeCount(String newsTitle);3.2 系統(tǒng)配置與公共類設(shè)計(jì)1. 添加所需框架在【庫】上單擊鼠標(biāo)右鍵,在彈出的菜單中選擇【添加庫.】即可添加庫。在庫中添加MySQL驅(qū)動(dòng)程序直接使用NetBeans自帶的MySQL驅(qū)動(dòng)程序即可。在庫中添加HibernateNetBeans自帶Hibernate3。在庫中添加
27、Spring在庫中添加Spring依賴包在庫中添加標(biāo)準(zhǔn)標(biāo)簽庫2. 在web.*ml中配置Spring 1建立標(biāo)準(zhǔn)部署描述符web.*ml文件。 2在web.*ml文件中配置Spring,主要包括配置上下文參數(shù),指明配置文件及其所在位置,啟動(dòng)Spring監(jiān)聽器,配置防止存泄漏的監(jiān)聽器,配置Spring提供的編碼過濾類。具體配置容如下所示。 conte*tConfigLocation classpath:applicationConte*t.*ml encodingFilter encoding utf-8 encodingFilter /* hibernateFilter hibernateFi
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)要領(lǐng):數(shù)據(jù)庫優(yōu)化方法探討
- 2026年英語聽力與口語表達(dá)能力進(jìn)階測試題
- 2026年工業(yè)產(chǎn)品設(shè)計(jì)及創(chuàng)新應(yīng)用測試題
- 2026年網(wǎng)絡(luò)安全工程師初級練習(xí)題
- 2026年法律常識考試題集及答案解析
- 2026年新型科技公司稅收管理及申報(bào)考核練習(xí)題
- 2026年法律行業(yè)高級職業(yè)資格測試題集及答案詳解
- 2026年能源行業(yè)專業(yè)知識筆試題目及答案詳解
- 2026年高精度認(rèn)證金融考前速成資料投資決策技巧試題解析
- 2026年地理常識與地理信息系統(tǒng)試題庫
- 2026年湖南郴州市百??毓杉瘓F(tuán)有限公司招聘9人備考考試題庫及答案解析
- 2026貴州黔東南州公安局面向社會招聘警務(wù)輔助人員37人考試備考題庫及答案解析
- 2026年數(shù)字化管理專家認(rèn)證題庫200道及完整答案(全優(yōu))
- 鐵路除草作業(yè)方案范本
- 2026屆江蘇省常州市生物高一第一學(xué)期期末檢測試題含解析
- 2026年及未來5年市場數(shù)據(jù)中國高溫工業(yè)熱泵行業(yè)市場運(yùn)行態(tài)勢與投資戰(zhàn)略咨詢報(bào)告
- 教培機(jī)構(gòu)排課制度規(guī)范
- 2026年檢視問題清單與整改措施(2篇)
- 國家開放大學(xué)《基礎(chǔ)教育課程改革專題》形考任務(wù)(1-3)試題及答案解析
- 2025年郵政社招筆試題庫及答案
- 個(gè)稅掛靠協(xié)議書
評論
0/150
提交評論