1. 程式人生 > >超市賬單管理系統設計思路

超市賬單管理系統設計思路

一.設計需求

圖1
注意事項:
1.登入介面應該有使用者名稱和密碼非空驗證,登入錯誤有錯誤資訊提示;
2.根據使用者許可權不同,左側選單樹展示內容不同(普通使用者和管理員之分),普通使用者只能修改自己賬戶的資訊,不能修改其他使用者資訊;
3.管理員不能新增和修改賬單資訊,但是可以刪除賬單資訊;
4.賬單、供應商和使用者模組都具有組合查詢功能(模糊查詢);
5.賬單、供應商、使用者和修改密碼頁應具有格式驗證功能(js實現);
6.關鍵操作應該具有提示功能(刪除,修改,增加);
7.瀏覽資訊表資訊時,各功能框不可修改(鎖死);
二.設計素材分析
1.前端頁面及樣式已經提供:

圖2
分別為:登入頁面(login.html),系統主頁面(admin_index.html:該頁面使用HTML框架技術,分別由頁面頭部(admin_top.html),頁面左側(admin_left.html),頁面右側(實際自行新增admin_right頁面,素材暫時使用admin_bill_list.html替代)),賬單列表頁面(admin_bill_list.html),賬單增加頁面(modify.html),供應商列表頁面(providerAdmin.html),供應商增加頁面(providerAdd.html),使用者列表頁面(userAdmin.html),使用者增加頁面(userAdd.html)。
2.資料庫程式碼分析:
--建立供應商表
create table provider(--供應商管理:provider
providerID number primary key,--編號
providerName varchar2(30),--供應商名稱
providerDesc varchar2(100),--供應商描述
contact varchar2(20),--聯絡人
phone varchar2(20),--電話
address varchar2(50)--地址
);
--建立使用者表
create table users(--使用者管理:users
userID number primary key,--編號
userName varchar2(20),--使用者名稱稱
userPassword varchar2(20),--使用者名稱密碼
gender varchar2(2),--性別
age number ,--年齡
phone varchar2(20),--電話
address varchar2(50),--地址
auth number--許可權
);
--建立賬單表
create table bill(--賬單管理:modify
billID number primary key,--賬單編號:
goodname varchar2(20),--商品名稱
goodnumber number,--商品數量
goodunit varchar2(10),--商品單位
payMoney number,--交易金額
payStatus number,--是否付款(0:否;1:是)
providerID number references provider(providerID),--供應商編號 外來鍵
usersID number references users(userID),--使用者編號 外來鍵
goodDescription varchar2(100),--商品描述
billDate date --賬單時間
);
--建立三張表對應的序列
create sequence sep_provider
start with 0
minvalue 0;
create sequence sep_users
start with 0
minvalue 0;
create sequence sep_bill
start with 0
minvalue 0;
根據資料庫的實際情況建立對題的實體類。
三.設計思路
1.本專案的系統框架結構:MVC架構
模型(Model ):
實現資料操作和業務處理,它對應的元件就是JavaBean,模型能夠提供和處理資料,它的程式碼能被其他元件呼叫,可以達到程式碼重用的目的。
對應與本專案中的entity,util,dao和service包。
檢視(View):
顯示資訊與使用者互動的介面,它對應的元件是JSP頁面或者HTML檔案,檢視一般不處理使用者的請求,它只顯示資料並接收使用者的操作。
控制器(Control):
它的作用是接收請求,呼叫模型實現業務,呼叫檢視顯示資料,最終完成操作。
對應本專案中的servlet。
2.編寫思路
針對該型別專案,編寫思路很清晰:
(1)首先根據資料庫及系統需求,儘可能的全面把模型牽扯的程式碼編寫包成,具體如下:
參考資料庫中表單的屬性編寫實體類,屬性名儘量與資料庫表屬性一致。本專案中為Bill.java,Providers.java,Users.java;
因為設計到資料庫操作,所以需要BaseDao.java;
為了實現系統的業務操作,所以需要DAO類和Service類,DAO類具體為BillDao,ProvidersDao,UserDao極其對應的介面實現類,Service類則完成所有DAO類的封裝,為控制器所呼叫。
注意:編寫完成,應先驗證各個業務功能是否正確,防止後面系統功能除錯時麻煩。

圖3
(2)JSP頁面改造
針對系統功能的需要大致需要如下JSP頁面來實現介面功能:
登入頁面:
Login.jsp——依照login.html
主要編寫功能js登入驗證,登入失敗故障資訊顯示。
登入成功主介面:
Admin_index.jsp——依照admin_index.html
由frameset元素把admin_top.jsp(admin_top.html)、admin_left.jsp(admin_left.html)和admin_right.jsp(新建,歡迎圖片)組成。
注意點:admin_left.jsp會根據使用者的許可權做相應的顯示判斷。
商品賬單操作頁面:
bill_list.jsp——依照admin_bill_list.html,主要實現商品資訊列表顯示。
Bill_add.jsp——依照modify.html,主要實現商品資訊新增的功能(輸入驗證由js完成)。
Bill_update.jsp——新建頁面,主要顯示單個商品的具體資訊(input文字框無法編輯),提供修改、刪除功能。
Bill_doupdate.jsp——新建頁面,主要完成商品修改資訊功能(文字框可以編輯)。
供應商操作頁面:
Provider_list.jsp——依照providerAdmin.html,主要實現供應商資訊列表顯示。
Provider_add.jsp——依照providerAdd.html,主要實現供應商資訊新增功能(輸入驗證由js完成)。
Provider_update.jsp——新建頁面,顯示需要修改的供應商資訊(文字框不能編輯)。
Provider_doupdate.jsp——新建頁面,完成商品資訊的修改(文字框可以修改)。
使用者操作頁面:
User_list.jap——依照userAdmin.html,顯示使用者資訊列表。
User_add.jsp——依照userAdd.html,實現使用者增加功能。
User_update.jsp——新增頁面,實現單個使用者資訊顯示(文字框不能編輯)。
User_doupdate.jsp——新增頁面,編輯單個使用者資訊。
Password_update.jsp——新增頁面,修改使用者密碼功能。
Common.jsp——實現頁面正常登入判斷功能。
注:以上頁面的資料提交均指向servlet類,如下所示:

圖4
資料操作指向servlet檔案,並攜帶op引數,op引數負責引導相應的具體操作。
(3)servlet編寫
servlet可由商品列表、供應商和使用者獨立的servlet組成,也可以由一個組合的servlet組成,針對複雜系統,建議編寫單元模組功能的servlet。
通過不同的op標誌位資訊,servlet選擇不同的邏輯操作,通過serviceImpl物件實現相應的增刪改查動作,完成頁面上的功能。

組合查詢知識點:
Sql語句:select * from provider where providername like '%查詢資訊1%' and providerdesc like '%查詢資訊2%';(查詢資訊可以為空)

Java實現方式:

圖5