【正文】
................... 31 致 謝 ........................................................... 40 xxx 本科學(xué)士論文 I 基于 Struts+Spring+Hibernate 架構(gòu) 的 藥品 銷 售系統(tǒng) 研究 與實現(xiàn) 摘 要 隨著 Inter技術(shù)和企業(yè)信息化建設(shè)的發(fā)展 ,構(gòu)建基于 Web的應(yīng)用系統(tǒng)的需求越來越復(fù)雜 ,開發(fā)周期越來越緊迫。 持久層實現(xiàn) ................................. 錯誤 !未定義書簽。 性能需求 .................................................... 2 運行環(huán)境 .................................................... 2 硬件設(shè)備 ............................................... 2 支持程序 ............................................... 2 2 系統(tǒng)總體框架 ...................................................... 4 模型結(jié)構(gòu) .................................................... 4 功能模塊簡介 ................................................ 4 3 技術(shù)介紹 .......................................................... 6 MVC 模式 簡介 ....................................................... 6 簡介 ............................................... 6 Spring 簡介 .................................................. 8 Hibernate 簡介 ............................................... 9 4 系統(tǒng)詳細設(shè)計 ..................................................... 11 數(shù)據(jù)庫設(shè)計 ................................................. 11 ER 圖 ................................................ 11 主要數(shù)據(jù)表 ............................ 錯誤 !未定義書簽。 Abstract....................................................................錯誤 !未定義書簽。 前 言 ............................................. 錯誤 !未定義書簽。 主要窗體界面 ................................................ 12 首頁 界面和 后臺首頁 .................... 錯誤 !未定義書簽。 業(yè)務(wù)邏輯層實現(xiàn) ............................. 錯誤 !未定義書簽。開發(fā)可擴展性好、重用性高和易于維護、易管理的 Web 應(yīng)用是當(dāng)前 Web 技術(shù)發(fā)展的熱點之一。結(jié)果 通過實踐表明,應(yīng)用這種系統(tǒng)框架可以提高系統(tǒng)開發(fā)效率,同時滿足系統(tǒng)擴展性和易于維護性的要求。該 藥品銷售 系統(tǒng)具有一般 藥品銷售 系統(tǒng)的功能,主要包括前臺 藥品商城 和后臺 藥品管理 區(qū),可為 藥品銷售企業(yè) 發(fā)布 藥品信息 ,為 藥品銷售企業(yè) 提供管理的服務(wù)。于是,本文基于目前比較流行的 J2EE開源框架 Struts、Spring、 Hibernate技術(shù),構(gòu)建一個基于 Web的在線藥品銷售系統(tǒng)。 在后臺管理中,因為有權(quán)限的管理員才能登錄管理后臺,所以需 要有 商品類型添加模塊、商品添加模塊、管理訂單模塊; 在 前臺,一般的瀏覽用戶能根據(jù)自己的需要選擇合適的藥品進行購買,能返回訂單號等功能模塊。 服務(wù)器硬件要求:具有 Pentium III 處理器以上且滿足以下要求的計算機:最低 256MB 內(nèi)存 , 最小 8 GB 硬盤 。 數(shù)據(jù)訪問層:數(shù)據(jù)訪問層為業(yè)務(wù)層提供數(shù)據(jù)服務(wù),這一層是 使用 Hibernate 進行 DAO封裝,從而實現(xiàn)面向?qū)ο蟮牟僮鲾?shù)據(jù)庫。 3. 普通瀏覽者發(fā)現(xiàn)需要購買的藥品,可以進入登錄頁面,進一步填寫個人信息如個人收貨地址、聯(lián)系電話等。 MVC模式是目前交互式系統(tǒng)應(yīng)用最廣的一種分層架構(gòu),能很好地實現(xiàn)用戶界面層和業(yè)務(wù)處理層隔離,對代碼進行模塊化的劃分,從而使系統(tǒng)中的各個功能模塊之間達到“解耦”的效果,也 很好地遵循 OCP 原則( OpenClosed Principle)。視圖可以調(diào)用模型提供的取值方法查詢業(yè)務(wù)狀態(tài),但是不能直接改變模 型的數(shù)據(jù),視圖接受用戶動作要求改變顯示數(shù)據(jù),必須經(jīng)過控制器,由控制器負責(zé)調(diào)用對應(yīng)的模型中相應(yīng)方法修改模型中的數(shù)據(jù)。 其次:三層之間是相互獨立 的,當(dāng)軟件需要改動時,能集中于某個層,而不必牽一發(fā)而動全xxx 本科學(xué)士論文 7 身,因此降低了代碼的耦合性。 框架是以 ActionServlet為核心控制器,整個應(yīng)用以客戶端請求驅(qū)動 。Struts2是集成 Struts1和 WebWork 兩者設(shè)計思想之優(yōu)點而設(shè)計出來的新一代 MVC框架。 xxx 本科學(xué)士論文 8 4. 回調(diào) Action的 execute()方法。 圖 331 Spring 組件 圖 組成 Spring 框架的每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。 ? Spring 上下文 : Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring AOP 模塊為基于 Spring 的應(yīng)用程序中的對象提供了事務(wù)管理服務(wù)。 Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結(jié)構(gòu)。所以, Spring 框架支持與 Jakarta Struts 的集成。 Hibernate 簡介 [6] Hibernate 是 采用 ORM模式實現(xiàn)數(shù)據(jù)持久層的一個優(yōu)秀 Java組件 ,它對 JDBC進行了非常輕量級的對象封裝, 提供了強大、高效的持久化操作服務(wù), 使得 Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。 該對象可以在進程或集群的級別上,為那些事務(wù)之間可以重用的數(shù)據(jù)提供可選的二級緩存。 ER圖 a d m i n sa d m i n I Du s e n a m ep a s s w o r dc o m m o d i t y C la s s I DC o m m o d i t y C la s s N a m ec o m m o d i t y c la s so r d e r L i s t I Do r d e r F o r m I Dc o m m m o d i t y IDa m o u n to r d e r l i s to r d e r f o r mt o t a l P r i c er e m a r kI P A d r e s si s P a y o f fc o n s i g n m e n tT i m es u b m i t T i m eo r d e r F o r m N Ou s e r I Do r d e r F o r m I Di s C o n s i g n m en tc o m m o d i t yc o m m o d i t y N am ec o m m o d i t y C la s sM a n u f a c t u r erc o m m o d i t y D ep i c tc o m m o d i t y P ri c eP r i c ec o m m o d i t y A mo u n tc o m m o d i t y L ea v e N u mc o m m o d i t y I DR e g T i m ei m a g eu s e r su s e r I Du s e r n a m ep a s s w o r dn a m es e xa d d r e s sp h o n ep o s te m a i lr e g T i m er e g I p A d d r e ss屬于1n屬于n1圖 4111 ER 圖 xxx 本科學(xué)士論文 12 主要數(shù)據(jù)表 在 6個數(shù)據(jù)表中,主要介紹 管理 表 和商品類型表及商品表 如下: 表 4121 管理者表 數(shù)據(jù)庫字段名稱 類型 長度 說明 adminID int 4 自動增長字段, 不允許空,主鍵 usename varchar 50 用戶名,不允許空 password varchar 50 用戶密碼,可以空 表 4122 商品類型表 數(shù)據(jù)庫字段名稱 類型 長度 說明 modityClassID int 4 自動增長字段,不允許空,主鍵 modityClassName varchar 50 商品種類名稱 表 4123 商品表 數(shù)據(jù)庫字段名稱 類型 長度 說明 modityID int 4 主鍵 ,商品編號 modityName varchar 50 商品名稱 modityClass int 50 外鍵 ,商品種類 Manufacturer varchar 50 生產(chǎn)廠家 modityDepict varchar 100 商品描述 modityPrice float 50 商品價格 Price float 50 本商城價格 t modityAmount int 10 商品總數(shù)量 modityLeaveNum int 10 商品剩余數(shù) RegTime datetime 10 商品上架時間 image blob 商品圖片 主要窗體界面 界面和后臺首頁 首頁 主要功能是顯示 最新藥品信息 、 購物車 , 用戶 等 。步驟如下: 1. 首先將視圖切換到“ MyEclipse Database Explorer Perspective” 2. 在 ” DB Browser” 中選中數(shù)據(jù)庫中的 ” TABLE” 項。在本系統(tǒng)中利用 Hibernate 實現(xiàn)這一任務(wù)。 下面就以商品類型添加 DAO接口為例來進行說明,下圖 521為針對商品類型添加設(shè)計的 modityClassDAO: public interface CommodityClassDAO { public void save(CommodityClass modityclass)。//查詢所有的商品種類 public CommodityClass findByID(int modityClassID)。 //獲得 session 對象 Query query = (from CommodityClass)。 //返回查詢結(jié)果 } public void save(CommodityClass modityclass) { getHibernateTemplate().save(modityclass)。 } public CommodityClass findByID(int modityClassID) { return (CommodityClass)getHibernateTemplate().load(, modityClassID)。 Import 。 上面的 modityClassDAOImpl 類在 spring 中的配置如下: bean id=modityClassDAO class= property name=sessionFactory ref=sessionFactory/ /bean 通過以上的配置后, DAO 組件能正常運作。 業(yè)務(wù)邏輯組件接口 本系統(tǒng)是按功能模塊來劃分業(yè)務(wù)邏輯組件接口。 public interface CommodityService { public void addCommodity(Commodity modity)。//按提交時間倒序查找 public Commodity queryByCommodityID(int modityID)。 系統(tǒng)的業(yè)務(wù)邏輯組件依賴于 DAO 組件,但是這種依賴在 SSH 架構(gòu)中是一種松耦合的依賴,是接口層