【正文】
頁(yè)面圖 (2) 用戶登錄時(shí)查詢用戶登錄信息,主要代碼如下: public User login(String userName,String password){ User user = null。 主要代碼如下: public class StringUtil { public static String encodeURL(String s){ try { s = (s,GBK)。 } protected Map getKeyMethodMap() { Map map = new HashMap()。 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { = (request)。 ().mit()。 ()。 } } } public static Session getSession() { Session session = (Session)()。 Hibernate 過(guò)濾器 在 Web 項(xiàng)目中,以普通方式使用 Hibernate 將無(wú)法解決 Hibernate 延遲加載,如下圖所示。 表 藥品信息表 字段名 數(shù)據(jù)類型 長(zhǎng)度 是否主鍵 允許空 描述 id integer — 是 否 自動(dòng)編號(hào) medNo varchar 100 否 否 藥品編 碼 Name varchar 200 否 否 藥品名稱 factoryAdd varchar 200 否 是 出廠 地址 description mediumtext — 否 是 藥品 描述 price double — 否 否 藥品 單價(jià) medCount integer — 否 是 藥品數(shù)量 reqCount integer — 否 是 需求數(shù)量 photoPath varchar 255 否 是 藥品 圖片 categoryId datetime — 否 是 類別 編號(hào) 14 (3) 藥品類別信息表 (tb_category),如表 所示。 圖 46 Action 對(duì)象關(guān)系圖 頁(yè)面結(jié)構(gòu)設(shè)計(jì) 醫(yī)藥管理系統(tǒng)的頁(yè)面結(jié)構(gòu)采用框架進(jìn)行設(shè)計(jì),通過(guò) HTML 語(yǔ)言中的呃framesd標(biāo)簽及 frame標(biāo)簽將頁(yè)面分成三個(gè)部分,分別為頁(yè)面頭部、頁(yè)面導(dǎo)航及內(nèi)容頁(yè)面,頁(yè)面結(jié)構(gòu)圖如 圖 47 所 示。 系統(tǒng)功能結(jié)構(gòu)圖如圖 41 所示 。 系統(tǒng) 功能需求 根據(jù)實(shí)際情況分析,本醫(yī)藥管理系統(tǒng)的應(yīng)具有主要功能包括: (1) 醫(yī)藥管理:添加藥品、查看藥品、高級(jí)查詢、查看庫(kù)存; (2) 類別管理:添加類別、查看類別、類別統(tǒng)計(jì); (3) 購(gòu)買藥品:選購(gòu)藥品、查看選購(gòu); (4) 銷售管理:查看明細(xì)、今日明細(xì)、日期查詢、銷售排行; (5) 進(jìn)貨 /需求管理:添加進(jìn)貨、查看進(jìn)貨; (6) 系統(tǒng)管理:添加管理員、查看所有管理員、修改密碼、系統(tǒng)初始化、退出系統(tǒng)。 所謂可行性應(yīng)該包括必要性和可能性兩個(gè)方面。插入的 Java程序段可以操作 數(shù)據(jù)庫(kù) 、重新定向網(wǎng)頁(yè)等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁(yè)所需要的功能。這樣就增加了速度并提高了靈活性。 系統(tǒng)開(kāi)發(fā)意義 根據(jù)實(shí)際情況和系統(tǒng)的開(kāi)發(fā)背景來(lái)看,開(kāi)發(fā)本醫(yī)藥管理系統(tǒng)的意義在于:能夠集中處理藥品的進(jìn)銷存業(yè)務(wù),提供快速的藥品查 詢功能、快速的統(tǒng)計(jì)藥品信息、銷量信息,對(duì)藥品進(jìn)行高效的管理以滿足管理者和 消費(fèi)者的需求。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。 本醫(yī)藥管理系統(tǒng)首先 輸入和存儲(chǔ)一些基本的數(shù)據(jù)資料,例如本系統(tǒng)中的藥品信息和銷售信息、進(jìn)貨 /需求信息,對(duì)于這些信息和數(shù)據(jù)能方便的進(jìn)行 添加 、修改 、查詢 和 刪 除 。本 醫(yī)藥管理 系統(tǒng)是為了管理 藥品信息而設(shè)計(jì)的。s living standards improve, the demand for pharmaceutical products increased rapidly, the management of drug information has bee an indispensable part of the work of the pharmaceutical management system of the medicine is designed to manage drug information. The previous data processing to use manual operation, a heavy workload, error rate, error is not easy to change. The use of the pharmaceutical management system, high efficiency, fast, easy to use and modify. According to the actual needs of the pharmaceutical management system is in the Windows XP operating system environment, the MyEclipse development tools for the front, using JSP technology, MySQL Server backend database development tools. Medical management, category management, buying drugs, sales management, purchase / demand management and system management functions. Management system of the medicine first enter and store some of the basic data, such as drug information and sales information in this system, purchase / demand for such information and data can easily add, modify, query and delete. Secondly, in order to facilitate management of data managers, a variety of data statistics, such as statistical inventory information, sales information, and purchase / demand information. Keywords Pharmaceutical management system。 隨著我國(guó)市場(chǎng)經(jīng)濟(jì)的蓬勃發(fā)展和人們對(duì)醫(yī)藥產(chǎn)品需求的迅速增加,醫(yī)藥行業(yè)正處于一個(gè)高速發(fā)展的時(shí)期。具體內(nèi)容安排如下: 第一章:介紹系統(tǒng)的開(kāi)發(fā)背景和開(kāi)發(fā)意義,以及文章的內(nèi)容安排; 第二章:介紹系統(tǒng)開(kāi)發(fā)的硬件環(huán)境和軟件環(huán)境,以及開(kāi)發(fā)工具和核心技術(shù); 第三章:對(duì)系統(tǒng)進(jìn)行需 求分析,主要對(duì)系統(tǒng)進(jìn)行可行性分析,明確系統(tǒng)要實(shí)現(xiàn)的目標(biāo)和所完成的功能; 第四章:完成系統(tǒng)的詳細(xì)設(shè)計(jì),包括系統(tǒng)功能結(jié)構(gòu)圖,業(yè)務(wù)流程圖以及數(shù)據(jù)庫(kù)的 ER 圖; 第五章:完成 系統(tǒng)的詳 細(xì)實(shí)現(xiàn),包括公共類的設(shè)計(jì)和各個(gè)模塊的設(shè)計(jì)。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),許多中小型網(wǎng)站為了降低網(wǎng)站總體擁有成本而選擇了 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。服務(wù)器在頁(yè)面被客戶端請(qǐng)求以后對(duì)這些 Java 代碼進(jìn)行處理,然后將生成的 HTML 頁(yè)面返回給客戶端的瀏覽器。 技術(shù)可行性 根據(jù) 系統(tǒng)目標(biāo)來(lái)衡量所需的技術(shù)是否具備,本 醫(yī)藥管理 系統(tǒng)是一個(gè)數(shù)據(jù)庫(kù)管理和查詢的系統(tǒng),軟件技術(shù)方面采用的是 Microsoft Windows XP Professional 版的操作系統(tǒng), MySQL Server 為后臺(tái)數(shù)據(jù)庫(kù)開(kāi)發(fā)工具 , MyEclipse 集成開(kāi)發(fā)工具。 醫(yī)藥管理系統(tǒng)零層數(shù)據(jù)流圖如圖 31 所示。 圖 43 四層結(jié)構(gòu)實(shí)現(xiàn)圖 定義 ActionForm ActionForm 是簡(jiǎn)單的 JavaBean,它主要用來(lái)保存用戶所輸入的表單數(shù)據(jù), ActionForm 要獲取這些數(shù)據(jù)需要通過(guò) ActionForm 對(duì)象進(jìn)行傳遞。 實(shí)體對(duì)象設(shè)計(jì) 在使用 Hibernate 框架的項(xiàng)目中,實(shí)體對(duì)象的確立是項(xiàng)目中的關(guān)鍵,實(shí)體對(duì)象與數(shù)據(jù)庫(kù)中的數(shù)據(jù)表相對(duì)應(yīng),并通過(guò) O/R 映射建立實(shí)體與數(shù)據(jù)庫(kù)的聯(lián)系, Hibernate 完全通過(guò)操作實(shí)體來(lái)操作數(shù)據(jù)庫(kù),所以首 先要確定項(xiàng)目中的實(shí) 體對(duì)象。 15 圖 49 用戶 實(shí)體屬性圖 圖 410 藥品實(shí)體屬性圖 圖 411 類別實(shí)體屬性圖 藥品 藥品編碼 藥品名稱 藥品數(shù)量 藥品單價(jià) 出廠地址 藥品描述 藥品類別 藥品圖片 需求數(shù)量 用戶 用戶名 密碼 創(chuàng)建時(shí)間 類別 類別名 創(chuàng)建時(shí)間 類別描述 16 圖 412 銷售明細(xì)實(shí)體屬性圖 (2) 各實(shí)體之間的關(guān)系 ER 圖如圖 413 所示。通過(guò)過(guò)濾器管理 Hibernate 的 Session對(duì)象則可以避免此問(wèn)題。 } return session。 } catch (Exception e) { ()。 } } } BaseAction 類 BaseAction 類是業(yè)務(wù)層有一個(gè)超類對(duì)象,它繼承了 Struts 的DispatchAction 類,同時(shí)還為子類對(duì)象提供公用方法。 } return (mapping, form, request, response)。 22 return map。 } public static String encodeZh(String s){ try { s = new String((iso88591),GBK)。 String hql = from User u where =? and =?。 String userName = ()。 return (manage)。 } med = new Medicine()。 SimpleDateFormat sdf = new SimpleDateFormat (yyyyMMddHHmmssSSS)。 } } 26 (med)。在藥品的列表信息中提供了查看藥品詳細(xì)信息的超鏈接,此鏈接作用于藥品名稱上,單擊此鏈接將進(jìn)入藥品查看請(qǐng)求中,這個(gè)請(qǐng)求由 MedicineAction類的 view()方法進(jìn)行處理。 29 圖 58 高級(jí)查詢頁(yè)面 查看庫(kù)存 為方便操作人員了解藥品的庫(kù)存或藥品數(shù)量,在醫(yī)藥 管理系統(tǒng)中提供了對(duì)庫(kù)存數(shù)量的檢索方式,此操作將通過(guò)比較運(yùn)算符查詢相應(yīng)的庫(kù)存數(shù)量。 (new Date())。 添加 藥品類別頁(yè)面 如圖 511 所示。 if (sdf != null amp。 (, message)。 List meds = new ArrayList()。 (temp)。 圖 515 選購(gòu)藥品頁(yè)面 查看選購(gòu) 在查看選購(gòu)頁(yè)面可以對(duì)選購(gòu)的藥品進(jìn)行操作,點(diǎn)擊“結(jié)賬”,將提交購(gòu) 34 買的藥品信息到銷售明細(xì)列表中,而查看選購(gòu)列表清空。 i = ()。 } return (sequence)。藥品需求添加后由 頁(yè)面進(jìn)行列表顯示。 }else{ med = new Medicine()。 圖 520 添加進(jìn)貨頁(yè)面 圖 521 添加進(jìn)貨頁(yè)面 圖 522 查看進(jìn)貨頁(yè)面 系統(tǒng)管理模塊 設(shè)計(jì) 系統(tǒng)管理模塊的作用是對(duì)管理員賬戶進(jìn)行管理及對(duì)系統(tǒng)初始化操作,在業(yè)務(wù)層與持久層分別由 SystemAction 類與 UserDao 類進(jìn)行處理。 (category)。 } MedicineDao medDao = new MedicineDao()。 圖 518 日期查詢頁(yè)面 銷售排行 銷售排行將按照售出的藥品數(shù)量進(jìn)行排序,由大到小列出排名信息。 } (sum, new Dou