1. 程式人生 > >超市帳單系統

超市帳單系統

create tar 增加 業務 調試 組合 失敗 供應商 選擇

一.設計需求

技術分享

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

技術分享

分別為:登錄頁面(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類的封裝,為控制器所調用。
註意:編寫完成,應先驗證各個業務功能是否正確,防止後面系統功能調試時麻煩。

技術分享

(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類,如下所示:

技術分享

數據操作指向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實現方式:

技術分享

超市帳單系統