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

正文內(nèi)容

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

2025-08-31 04:34 本頁(yè)面
 

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