freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)上書店系統(tǒng)的設(shè)計(jì)與實(shí)1現(xiàn)(編輯修改稿)

2024-08-31 04:34 本頁面
 

【文章內(nèi)容簡介】 書店系統(tǒng)實(shí)現(xiàn)系統(tǒng)的建設(shè)關(guān)鍵在于其所使用的架構(gòu),而網(wǎng)上書店這種基于web的系統(tǒng),傳統(tǒng)的C/S架構(gòu)已經(jīng)不能滿足大量用戶的訪問和操作,B/S基于瀏覽器的架構(gòu)則是目前網(wǎng)絡(luò)系統(tǒng)應(yīng)用的主流,它將大量的數(shù)據(jù)處理工作交給服務(wù)器端來處理,客戶端只用通過普通的IE瀏覽器即可訪問系統(tǒng),方便快捷而且利于系統(tǒng)的更新和維護(hù),java語言在該方面更是得天獨(dú)厚。 在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求,服務(wù)器對瀏覽器的請求進(jìn)行處理,將用戶所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件。服務(wù)器將擔(dān)負(fù)更多的工作,對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。瀏覽器發(fā)出請求,而其余如數(shù)據(jù)請求、加工、結(jié)果返回以及動(dòng)態(tài)網(wǎng)頁生成等工作全部由Web Server完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層C/S結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來,由Web服務(wù)器單獨(dú)組成一層來負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了Web服務(wù)器。 Browse瀏覽器Web服務(wù)器數(shù)據(jù)庫圖51 B/S三層架構(gòu)示意圖()設(shè)計(jì)數(shù)據(jù)庫連接模塊的思想是面向?qū)ο蟮姆庋b思想。把數(shù)據(jù)庫的連接操作封裝到DB類中,使在編寫業(yè)務(wù)邏輯是不用重復(fù)的編寫連接數(shù)據(jù)庫的語句塊,極大的減少了代碼編寫數(shù)量,減少了我開發(fā)的時(shí)間,并保證了連接的正確性,似的維護(hù)數(shù)據(jù)庫連接的靈活性增強(qiáng)。DB類中實(shí)現(xiàn)了創(chuàng)建Connection連接方法 獲得與數(shù)據(jù)庫的有效連接。創(chuàng)建SQL語句載體Statement方法。創(chuàng)建PreparedStatement的方法 PreparedStatement語句能更有效地實(shí)現(xiàn)對數(shù)據(jù)庫記錄的添加、刪除、修改操作。創(chuàng)建查詢結(jié)果集ResultSet的方法結(jié)果集中包含了查詢數(shù)據(jù)庫所得到的所有數(shù)據(jù)記錄。創(chuàng)建關(guān)閉Connection,Statement ,ResultSet的方法。對數(shù)據(jù)庫的所有操作完成之后必須將于數(shù)據(jù)庫相連的Connecion對象關(guān)閉以釋放系統(tǒng)所占的資源。設(shè)計(jì)完成數(shù)據(jù)庫連接模塊之后考慮怎樣更好的設(shè)計(jì)其他業(yè)務(wù)邏輯模塊,怎樣更好的提高業(yè)務(wù)邏輯模塊的靈活性,可移植性。網(wǎng)站的數(shù)據(jù)庫使用的MySQL,如果隨著網(wǎng)站的發(fā)展將會(huì)使用多種數(shù)據(jù)庫測試時(shí)便要修改MySQL數(shù)據(jù)庫的代碼給維護(hù)帶來的很大不便。使用DAO模式設(shè)計(jì)了DAO接口 編寫MySQL實(shí)現(xiàn)的數(shù)據(jù)庫操作實(shí)現(xiàn)了DAO接口使用多數(shù)據(jù)庫測試時(shí)只需要編寫不同的DAO實(shí)現(xiàn)便可,提高了靈活性。public interface Dao{};public class MySqlDao implements Dao{};在JSP頁面中處理數(shù)據(jù)時(shí)調(diào)用業(yè)務(wù)邏輯方法處理,此時(shí)構(gòu)造一個(gè)該模塊業(yè)務(wù)邏輯的管理類manager統(tǒng)一管理此模塊中的所有業(yè)務(wù)邏輯的調(diào)用。在每次調(diào)用業(yè)務(wù)邏輯時(shí)需要構(gòu)造一個(gè)管理員類的實(shí)例,頻繁的調(diào)用邏輯方法都要?jiǎng)?chuàng)建單獨(dú)的管理員極大的浪費(fèi)系統(tǒng)的資源。為了節(jié)省資源使用單例模式,只構(gòu)造一次管理對象。也便如現(xiàn)實(shí)中的工廠,只有一個(gè)管理員,而不是每次進(jìn)出工廠都要找一個(gè)管理員,如果管理員存在便不在聘請。public class Manager{ private static Manager manager = null。public static Manager getInstance(){ if(manager==null){ manager = new Manager()。 } return manager。}} 模塊的類設(shè)計(jì) 設(shè)計(jì)模塊的具體功能時(shí)首先應(yīng)先設(shè)計(jì)承載這些功能的類,各功能模塊都應(yīng)包含實(shí)體類 ,業(yè)務(wù)邏輯類兩部分。實(shí)體類依據(jù)設(shè)計(jì)的數(shù)據(jù)庫的邏輯結(jié)構(gòu)編寫,包含了數(shù)據(jù)成員對應(yīng)各自的數(shù)據(jù)庫表的列,并提供對個(gè)數(shù)據(jù)成員的get set 方法。業(yè)務(wù)邏輯類內(nèi)部主要包含實(shí)現(xiàn)個(gè)功能的業(yè)務(wù)邏輯方法。該系統(tǒng)使用三層類的結(jié)構(gòu),即管理類Manager,DAO類,數(shù)據(jù)庫實(shí)現(xiàn)類。 用戶模塊用戶模塊分為會(huì)員注冊并登錄網(wǎng)站并在我的帳戶中管理自己的信息和網(wǎng)站管理員在后臺(tái)管理會(huì)員信息兩部分。用戶進(jìn)入網(wǎng)站后可以注冊為會(huì)員,會(huì)員可以訂購圖書并享受折扣待遇。會(huì)員登錄后可以在我的賬戶中管理自己的個(gè)人信息,包括修改查看個(gè)人基本信息,查看訂單信息,查看消費(fèi)信息。圖52 首頁頁面 會(huì)員注冊登錄設(shè)計(jì)圖53 注冊頁面 電子商城系統(tǒng)離不開用戶與網(wǎng)站之間的交互,用戶注冊和登錄十分重要。該系統(tǒng)對用戶注冊和登錄功能進(jìn)行詳細(xì)設(shè)計(jì)。 會(huì)員注冊時(shí)在注冊頁面編輯個(gè)人信息,通過信息表單提交個(gè)人信息到服務(wù)器審核。檢查用戶提交的信息是否為空,用戶提交的信息不能為空。會(huì)員注冊用戶名不能與以往已經(jīng)注冊的用戶名重復(fù),否則無法區(qū)分。在提交信息到數(shù)據(jù)庫時(shí)對此進(jìn)行了檢查限制。().checkUsername().檢查會(huì)員名是否已經(jīng)存在。 審核通過便成功注冊為會(huì)員。將信息添加到數(shù)據(jù)庫中保存。在業(yè)務(wù)類中提供了addUser()方法添加數(shù)據(jù)。因?yàn)橄驍?shù)據(jù)庫添加數(shù)據(jù)方面大同小異所以以添加用戶為例詳細(xì)介紹向數(shù)據(jù)庫添加數(shù)據(jù)的方法。public void addUser(User user){ Connection conn = ()。//使用編寫好的DB類創(chuàng)建與數(shù)據(jù)庫的連接 String sql = insert into user values(null,?,?,?,?,?,?,?,?,?)。//編寫sql語句 該sql語句使用PreparedStatement的格式 PreparedStatement psta = (conn, sql)。 try { (false)。//為了更安全的提交數(shù)據(jù)將數(shù)據(jù)庫的事務(wù)提交改為手動(dòng)提交 (1,())。 (2,())。 (3,())。 (4,())。 (5,())。 (6,())。 (7,new Timestamp(().getTime()))。 (8,)。 (9,0)。 ()。//利用PreparedStatement對數(shù)據(jù)庫修改(添加數(shù)據(jù)) ()。//將所做的修改的事務(wù)提交 } catch (SQLException e) { ()。 } finally { try { (true)。//將自動(dòng)提交值改為默認(rèn)值 } catch (SQLException e) { ()。 } (psta)。 (conn)。//關(guān)閉連接數(shù)據(jù)庫的資源 } }會(huì)員注冊后每次只需登錄網(wǎng)站便可在網(wǎng)站購物。會(huì)員在首頁登錄表單內(nèi)填寫相應(yīng)的信息登錄網(wǎng)站。服務(wù)器驗(yàn)證信息正確則返回首頁顯示用戶成功登錄,并把用戶登錄信息添加進(jìn)session中統(tǒng)一管理。如果信息錯(cuò)誤則返回注冊頁面請會(huì)員重新登錄。 利用session在服務(wù)器中統(tǒng)一管理會(huì)員的登錄信息更能保證用戶登錄的安全。 后臺(tái)會(huì)員管理設(shè)計(jì)該系統(tǒng)實(shí)現(xiàn)的后臺(tái)會(huì)員管理主要是獲取所有會(huì)員的信息 使用表格將會(huì)員信息顯示在網(wǎng)頁上。該管理系統(tǒng)實(shí)現(xiàn)了會(huì)員信息類表的排序和分頁。 利用排序方式和頁面參數(shù)獲取會(huì)員列表分別使用了數(shù)據(jù)庫的排序操作和分頁操作技術(shù)。圖54 用戶列表頁面 類別模塊 通過設(shè)計(jì)類別模塊能夠更方便的管理圖書目錄,消費(fèi)者在選購圖書的時(shí)候能夠更方便的按類別尋找自己喜愛的圖書,所以類別的設(shè)計(jì)很重要。能夠更好的引導(dǎo)消費(fèi)者選購也能夠更好的幫助管理者管理圖書。 類別管理同樣使用了實(shí)體類家三層業(yè)務(wù)邏輯類的方法。系統(tǒng)中設(shè)計(jì)了兩級類別,第一級類別為主類別,第二級為某主類別小細(xì)分的子類別。在數(shù)據(jù)庫表項(xiàng)中使用grade字段記錄類別的等級。并使用o字段類別的排序號碼。Cno值使用了四位數(shù)字,前兩位為第一級類別使用,后兩位為第二級類別使用,即每一級都可添加一百種不同的類別。Cno更好的輔助了類別管理是遞歸的實(shí)現(xiàn)。在展示類別列表時(shí)按照o排序即可實(shí)現(xiàn)遞歸的功能,依次展示主類別和旗下子類別。 o值計(jì)算在添加類別是需要添加類別的o值,因?yàn)閛值應(yīng)為系統(tǒng)自動(dòng)添加所以在業(yè)務(wù)邏輯中重點(diǎn)編寫了計(jì)算o值的方法。 首先查詢同級兄弟類別中o的最大值,如果同級兄弟類別中還有沒記錄的,重頭開始編寫該級別的o(0000)。如果同級兄弟類別中已經(jīng)有了其他記錄,則要跟在其他記錄o值后面編寫。public int getCno(Connection conn , Category c){ Statement sta = (conn)。 String sql = select max(o) from category where pid=+()。 //查詢兄弟類別中的o最大值使用 String getpno = select o from category where id=+()。 //查詢父親類別的o值使用 ResultSet rs = (sta, sql)。 int o = 1。 try{ ()。 int maxo = (1)。 int addno = (int)(100,())。 if(maxo==0)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1