詳細設(shè)計書_總體設(shè)計_第1頁
詳細設(shè)計書_總體設(shè)計_第2頁
詳細設(shè)計書_總體設(shè)計_第3頁
詳細設(shè)計書_總體設(shè)計_第4頁
詳細設(shè)計書_總體設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、詳細設(shè)計說明書總體設(shè)計一、引言(一)編寫目的詳細設(shè)計的目標是確定應該具體地實現(xiàn)所要求的系統(tǒng),得出對目標系統(tǒng)的精確描述,從而在編碼階段可以把這個描述直接翻譯成用某種程序設(shè)計語言書寫的程序。詳細設(shè)計的任務是根據(jù)系統(tǒng)需求分析報告和系統(tǒng)概要設(shè)計報告中對業(yè)務功能的定義,以及系統(tǒng)框架的要求,進而實現(xiàn)更進一步的具體設(shè)計。詳細設(shè)計報告中將從業(yè)務的具體實現(xiàn)功能方面入手,從用戶界面的設(shè)計、類的詳細定義、成員變量的使用,到過程調(diào)用的輸入輸出參數(shù)等多方面進行規(guī)范、定義、說明。根據(jù)概要設(shè)計書,整個程序分為六大模塊:用戶信息管理,求租管理,員工信息,出租管理,系統(tǒng)管理和幫助模塊,本文將對每個模塊具體如何實現(xiàn)進行描述。(二

2、)系統(tǒng)說明項目的開發(fā)需求方是XX房屋中介公司,由XX軟件公司與XX學校軟件專業(yè)共同承接開發(fā)任務,預期用戶是中介行業(yè)內(nèi)部操作人員、庫存管理人員,公司經(jīng)理等。(三)術(shù)語表1.1 術(shù)語定義縮寫、術(shù)語解釋庫存管理根據(jù)零部件識別碼或標號,對其出庫入庫進行追蹤統(tǒng)計,并對零件進行信息統(tǒng)計,以便更好的對供貨商信息以及顧客信息進行統(tǒng)計并生成報表。管理員管理機械零部件庫存管理系統(tǒng),管理角色分配,用戶添加基礎(chǔ)功能MVC三層框架MVC三層框架,指視圖層、控制層、邏輯層三層架構(gòu),M:Model,V:View,C:ControlSSH在J2EE項目中表示了3種框架,即 Spring + Struts +Hibernate

3、Struts是Java領(lǐng)域中的一個開源框架技術(shù),采用MVC三層結(jié)構(gòu)Spring是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架Hibernate是一個開放源代碼的對象關(guān)系映射框架TomcatJava Web 應用中的Web服務器的一種,為系統(tǒng)提供Web容器功能(四)參考資料表1.2 參考資料序號資料名文件編號發(fā)表日期出版單位1軟件工程國家標準文檔GB85678820012軟件工程概論2009清華大學出版社二、軟件結(jié)構(gòu)(一)軟件功能結(jié)構(gòu)圖房屋中介管理系統(tǒng)用戶信息管理求租管理員工信息系統(tǒng)管理出租管理幫助人員信息控制房源查詢設(shè)置房源狀態(tài)查詢退出系統(tǒng)清理無效信息求組人員信息設(shè)置出租人員信

4、息設(shè)置求租意向設(shè)置錄入員工信息所有員工信息房間信息設(shè)置樓層設(shè)置幢座設(shè)置裝修程度設(shè)置朝向設(shè)置用途設(shè)置幫助文件圖 軟件功能結(jié)構(gòu)圖(二)模塊清單表2.1 模塊清單序號模塊名稱編號模塊說明1用戶信息管理01負責所有用戶的詳細資料添加負責所有用戶的詳細資料修改負責所有用戶的詳細資料刪除2求租管理02負責房源查詢負責查詢房源狀態(tài)負責添加求租人員所有意向負責修改求租人員所有意向負責添加求租人員所有意向3員工信息管理03負責所有員工的詳細資料添加負責所有員工的詳細資料修改負責所有員工的詳細資料刪除4出租管理04負責查詢房屋信息負責查詢房屋的樓層信息負責查詢房屋幢/坐信息負責查詢房屋裝修信息負責查詢房屋朝向信息

5、負責查詢房屋用途信息5系統(tǒng)管理05負責對訪問管理系統(tǒng)的用戶分配角色類型并設(shè)置訪問權(quán)限負責添加用戶并為用戶分配角色類型負責對數(shù)據(jù)進行備份并且可以對數(shù)據(jù)進行初始化以及恢復6幫助模塊06負責所有用戶登錄系統(tǒng)時的幫助說明操作三、技術(shù)設(shè)計路線(一)技術(shù)路線SSH組合框架設(shè)計的目標就是要為企業(yè)級的軟件開發(fā)提供簡介完善的Web框架,并且根據(jù)SSH組合框架的特性提高組件之間的復用,是程序開發(fā)人員的開發(fā)效率得到提高并且在系統(tǒng)后期維護時能夠更加方便,當系統(tǒng)需要擴展時能夠有足夠便捷的接口使系統(tǒng)擴展。UI LayerStruts-MVCStruts ActionActionForm, JSPStruts-config

6、.xmlect.Business LayerSpringTransactionHibernate SessionManagementBusiness ServiceClassesPersistence LayerHibernateData SourceConnection PoolQuery LanguageSupport and otherHibernate servicesServiceLocatorDAOClassesDomain Model Business Object圖3.1 SSH組合框架結(jié)構(gòu)圖在Struts+Spring+Hibernate的系統(tǒng)中,對象的調(diào)用流程是:JSPAc

7、tionServiceDAOHibernate,數(shù)據(jù)的流向是ActionFormBean接受用戶的數(shù)據(jù),Action將數(shù)據(jù)從ActionFormBean中取出,封裝成VO或PO,再調(diào)用業(yè)務層的Bean類,完成多種業(yè)務處理后再Forward。業(yè)務層Bean收到這個PO對象之后,會調(diào)用DAO接口方法,進行持久化操作。(1)Struts顯示層配置ActionFormBean接收網(wǎng)頁中表單提交的數(shù)據(jù),然后通過Action進行處理,再Forward到對應的網(wǎng)頁,在struts-config.xml中定義<action-mapping>,ActionServlet會加載。(2)Spring業(yè)務

8、邏輯層配置Service為Action提供統(tǒng)計的調(diào)用接口,封裝持久層的DAO,并集成了Hibernate,Spring可對JavaBean和事物進行統(tǒng)一管理。(3)Hibernate數(shù)據(jù)邏輯層配置Hibernate負責持久化層,完成數(shù)據(jù)庫的CRUD操作。Hibernate提供OR/Mapping,它有一組hbm.xml文件和POJO,是與數(shù)據(jù)庫中的表相對應的,然后定義DAO,這些是與數(shù)據(jù)庫打交道的類,它們會使用PO。(二)配置文件1.數(shù)據(jù)庫連接配置用戶數(shù)據(jù)訪問由BaseDAO.java與BasedaoImpl.java文件,是負責數(shù)據(jù)訪的問接口模塊,在業(yè)務邏輯與數(shù)據(jù)庫資源中間,僅在用戶需要與數(shù)

9、據(jù)源進行交互時使用接口。數(shù)據(jù)庫配置如下圖3.2所示。圖3.2 數(shù)據(jù)庫連接驅(qū)動配置統(tǒng)一數(shù)據(jù)訪問接口實現(xiàn)關(guān)鍵代碼如下:public Connection getConnection() return getHibernateTemplate().getSessionFactory().getCurrentSession().connection();從連接池取得一個JDBC連接。public void saveOrUpdateAll(Collection collection) getHibernateTemplate().saveOrUpdateAll(collection);數(shù)據(jù)批量保存、修改

10、。public void callProcedure(String call) SQLQuery query = this.getSession().createSQLQuery(call); query.executeUpdate();調(diào)用存儲過程。2.Struts配置文件struts.xmlstruts.xml文件是Struts 2框架的核心,定義了Struts的系列Action,為了便于分開維護,本系統(tǒng)將struts配置的xml文件struts.xml放置在“configs”子目錄下,如下圖3.3所示。圖3.3 Struts配置文件主要配置文件源碼如下:<?xml version=

11、"1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-/Apache Software Foundation/DTD Struts Configuration 2.0/EN""/dtds/struts-2.0.dtd"><struts><package name="cxstock" extends="struts-default"><!-

12、 配置自定義攔截器LoginedCheckInterceptor -><interceptors><interceptor name="loginedCheck" class="com.cxstock.utils.filter.LoginedCheckInterceptor"/></interceptors> <!- 定義全局result -><global-results><!- 定義名為exception的全局result -><result name="e

13、xception">/exception.jsp</result><result name="tologin">/jsp/main/tologin.htm</result></global-results><!- 定義全局異常映射 -><global-exception-mappings><!- 捕捉到Exception異常(所有異常)時跳轉(zhuǎn)到exception所命名的視圖上 -><exception-mapping exception="java.lang.

14、Exception" result="exception"/></global-exception-mappings></package><package name="main" extends="cxstock" namespace="/"><action name="*_*" class="1Action" method="2"><result name="input&qu

15、ot;>/login.jsp</result><result name="success" type="redirect">/jsp/main/index.jsp</result><interceptor-ref name="loginedCheck"/><interceptor-ref name="defaultStack"/></action></package></struts>3.Spring核心配置文件s

16、pring-basic.xmlSpring的配置文件spring-basic.xml,本系統(tǒng)bean的配置也被分離成兩個文件,分別為spring-basic.xml以及spring-bean.xml,放置在“configs”子目錄下,如圖3.4所示,spring-basic.xml關(guān)鍵代碼如下。圖3.4 Spring配置文件<beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:s

17、chemaLocation="/schema/beans /schema/beans/spring-beans-2.5.xsd"><!- DataSource -><bean id="dataSource" class="mons.dbcp.BasicDataSource"><property name="driverClassName" value="c

18、om.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql:/localhost:3306/mystock?useUnicode=true&amp;characterEncoding=UTF-8"></property><property name="username" value="root"></property><property nam

19、e="password" value="admin"></property></bean>(三)軟件開發(fā)包說明本系統(tǒng)軟件開發(fā)包說明如下表所示:表3.1 機械零部件庫存管理系統(tǒng)開發(fā)報說明序號軟件包包功能說明1com.cxstock.action零部件系統(tǒng)操作處理2com.cxstock.action.chushou零部件系統(tǒng)商品銷售出庫操作處理3com.cxstock.action.jinhuo零部件系統(tǒng)商品進貨操作處理4com.cxstock.action.kucun零部件系統(tǒng)商品庫存報損溢操作處理5com.cxstock.

20、action.power零部件系統(tǒng)權(quán)限管理操作處理6com.cxstock.action.tongji零部件系統(tǒng)銷售金額統(tǒng)計操作處理7com.cxstock.action.ziliao零部件系統(tǒng)原始資料錄入操作處理8.chushou零部件系統(tǒng)商品出售業(yè)務邏輯9.chushou.imp零部件系統(tǒng)商品出售業(yè)務邏輯實現(xiàn)10.jinhuo零部件系統(tǒng)商品進貨業(yè)務邏輯11.jinhuo.imp零部件系統(tǒng)商品進貨業(yè)務邏輯實現(xiàn)12.kucun零部件系統(tǒng)商品庫存查

21、詢報損溢業(yè)務邏輯13.kucun.imp零部件系統(tǒng)商品庫存查詢報損溢業(yè)務實現(xiàn)14.kucun.dto零部件系統(tǒng)商品商品庫存數(shù)據(jù)傳輸對象類15.power零部件系統(tǒng)權(quán)限管理業(yè)務邏輯16.power.dto零部件系統(tǒng)權(quán)限管理數(shù)據(jù)傳輸對象類17.power.imp零部件系統(tǒng)權(quán)限管理業(yè)務實現(xiàn)18.tongji零部件系統(tǒng)銷售金額統(tǒng)計業(yè)務邏輯19.#dto零部件系統(tǒng)銷售金額統(tǒng)計數(shù)據(jù)傳輸對

22、象類20.#imp零部件系統(tǒng)銷售金額統(tǒng)計業(yè)務邏輯實現(xiàn)21.ziliao零部件系統(tǒng)原始資料錄入業(yè)務邏輯22.ziliao.dto零部件系統(tǒng)原始資料錄入數(shù)據(jù)傳輸類23.ziliao.imp零部件系統(tǒng)原始資料錄入業(yè)務邏輯實現(xiàn)24com.cxstock.dao零部件系統(tǒng)數(shù)據(jù)訪問接口25com.cxstock.dao.impl零部件系統(tǒng)數(shù)據(jù)訪問接口實現(xiàn)26com.cxstock.pojo零部件系統(tǒng)所有數(shù)據(jù)使用的基本類27com.cxstock.utils.filter為系統(tǒng)

23、提供超時檢查、安全過濾的基本類28com.cxstock.utils.pubutil為系統(tǒng)提供分頁、樹形目錄的基本類29com.cxstock.utils.system為系統(tǒng)提供數(shù)據(jù)備份恢復等處理的基本類零部件系統(tǒng)操作處理軟件包所包含的類(接口)說明如下表3.2所示。表3.2 軟件包com.cxstock.action說明序號類(接口)名字類說明1BaseAction分頁操作零部件系統(tǒng)商品出庫操作處理軟件包所包含的類(接口)說明如下表3.3所示。表3.3 軟件包com.cxstock.action.chushou說明序號類(接口)名字類說明1XsAction銷售出庫操作零部件系統(tǒng)商品進貨操作處

24、理軟件包所包含的類(接口)說明如下表3.4所示。表3.4 軟件包com.cxstock.action.jinhuo說明序號類(接口)名字類說明1JhAction進貨操作零部件系統(tǒng)商品庫存報損溢操作處理處理軟件包所包含的類(接口)說明如下表3.5所示。表3.5 軟件包com.cxstock.action.kucun說明序號類(接口)名字類說明1BsyAction報損益操作2SearchAction單據(jù)查詢操作零部件系統(tǒng)權(quán)限管理操作處理軟件包所包含的類(接口)說明如下表3.6所示。表3.6 軟件包com.cxstock.action.power說明序號類(接口)名字類說明1DataCopyActi

25、on數(shù)據(jù)備份操作2RoleAction角色分配操作3UserAction用戶添加操作零部件系統(tǒng)銷售金額統(tǒng)計操作處理軟件包所包含的類(接口)說明如下表3.7所示。表3.7 軟件包com.cxstock.action.tongji說明序號類(接口)名字類說明1TongjiAction銷售金額統(tǒng)計操作零部件系統(tǒng)原始資料錄入操作處理軟件包所包含的類(接口)說明如下表3.8所示。表3.8 軟件包com.cxstock.action.ziliao說明序號類(接口)名字類說明1GysAction供應商統(tǒng)計操作2KcAction初期庫存統(tǒng)計操作3KhAction客戶統(tǒng)計操作4SpdwAction商品單位設(shè)置操

26、作5SplbAction商品列表創(chuàng)建修改操作6SpxxAction商品信息錄入操作零部件系統(tǒng)商品出售業(yè)務邏輯軟件包所包含的類說明如下圖3.9所示。表3.9 軟件包.chushou說明序號類名字類說明1XsBiz銷售業(yè)務邏輯模型定義零部件系統(tǒng)商品出售業(yè)務邏輯實現(xiàn)軟件包所包含的類說明如下圖3.10所示。表3.10 軟件包.chushou.imp說明序號類名字類說明1XsBizImpl銷售業(yè)務邏輯模型實現(xiàn)操作零部件系統(tǒng)商品進貨業(yè)務邏輯軟件包所包含的類說明如下圖3.11所示。表3.11 軟件包.jinhuo說明序

27、號類名字類說明1JhBiz進貨業(yè)務邏輯模型定義零部件系統(tǒng)商品進貨業(yè)務邏輯實現(xiàn)軟件包所包含的類說明如下圖3.12所示。表3.12 軟件包.jinhuo.imp說明序號類名字類說明1JhBizImpl進貨業(yè)務邏輯模型實現(xiàn)操作零部件系統(tǒng)商品庫存查詢報損溢業(yè)務邏輯軟件包所包含的類說明如下圖3.13所示。表3.13 軟件包.kucun說明序號類名字類說明1BsyBiz報損溢業(yè)務邏輯模型定義2SearchBiz當前庫存查詢業(yè)務邏輯模型定義零部件系統(tǒng)商品庫存查詢報損溢業(yè)務實現(xiàn)軟件包所包含的類說明如下圖3.14所示。表3.14 軟件包com.cxst

28、.kucun.dto說明序號類名字類說明1DqkcDTO當前庫存數(shù)據(jù)傳輸對象定義零部件系統(tǒng)商品商品庫存數(shù)據(jù)傳輸對象類軟件包所包含的類說明如下圖3.15所示。表3.15 軟件包.kucun.imp說明序號類名字類說明1BsyBizImpl報損溢業(yè)務邏輯實現(xiàn)2SearchBizImpl查詢業(yè)務邏輯實現(xiàn)零部件系統(tǒng)權(quán)限管理業(yè)務邏輯軟件包所包含的接口說明如下圖3.16所示。表3.16 軟件包.power說明序號接口名字接口說明1RoleBiz用戶角色接口2UserBiz用戶數(shù)據(jù)接口零部件系統(tǒng)權(quán)限管理數(shù)據(jù)傳輸對象類軟件包所包含的類說

29、明如下圖3.17所示。表3.17 軟件包.power.dto說明序號類名字類說明1RoleDTO用戶角色接口數(shù)據(jù)傳輸對象定義2UserDTO用戶數(shù)據(jù)接口數(shù)據(jù)傳輸對象定義3UserMenuDTO用戶菜單接口數(shù)據(jù)傳輸對象定義零部件系統(tǒng)權(quán)限管理業(yè)務實現(xiàn)軟件包所包含的類說明如下圖3.18所示。表3.18 軟件包.power.imp說明序號類名字類說明1RoleBizImp用戶角色接口實現(xiàn)2UserBizImp用戶數(shù)據(jù)接口實現(xiàn)零部件系統(tǒng)銷售金額統(tǒng)計業(yè)務邏輯軟件包所包含的類說明如下圖3.19所示。表3.19 軟件包.

30、tongji說明序號類名字類說明1TongjiBiz金額統(tǒng)計業(yè)務邏輯模型定義零部件系統(tǒng)銷售金額統(tǒng)計數(shù)據(jù)傳輸對象類軟件包所包含的類說明如下圖3.20所示。表3.20 軟件包.#dto說明序號類名字類說明1DjmxDTO明細統(tǒng)計信息數(shù)據(jù)傳輸對象定義零部件系統(tǒng)銷售金額統(tǒng)計業(yè)務邏輯實現(xiàn)軟件包所包含的類說明如下圖3.21所示。表3.21 軟件包.#imp說明序號類名字類說明1TongjiBizImpl金額統(tǒng)計業(yè)務邏輯實現(xiàn)零部件系統(tǒng)原始資料錄入業(yè)務邏輯軟件包所包含的類說明如下圖3.22所示。表3.22 軟件包com.cxs

31、.ziliao說明序號類名字類說明1GysBiz供應商業(yè)務邏輯定義2KcBiz庫存業(yè)務邏輯定義3KhBiz客戶業(yè)務邏輯定義4SpdwBiz商品單位業(yè)務邏輯定義5SplbBiz商品列表業(yè)務邏輯定義6SpxxBiz商品信息業(yè)務邏輯定義零部件系統(tǒng)原始資料錄入數(shù)據(jù)傳輸類軟件包所包含的類說明如下圖3.23所示。表3.23 軟件包.ziliao.dot說明序號類名字類說明1GysDTO供應商數(shù)據(jù)傳輸對象定義2KcDTO庫存數(shù)據(jù)傳輸對象定義3KhDTO客戶數(shù)據(jù)傳輸對象定義4SpdwDTO商品單位數(shù)據(jù)傳輸對象定義5SplbDTO商品列表數(shù)據(jù)傳輸對象定義6SpxxD

32、TO商品信息數(shù)據(jù)傳輸對象定義零部件系統(tǒng)原始資料錄入業(yè)務邏輯實現(xiàn)軟件包所包含的類說明如下圖3.24所示。表3.24 軟件包.ziliao.imp說明序號類名字類說明1GysBizImp供應商業(yè)務邏輯實現(xiàn)2KcBizImp庫存業(yè)務邏輯實現(xiàn)3KhBizImp客戶業(yè)務邏輯實現(xiàn)4SpdwBizImp商品單位業(yè)務邏輯實現(xiàn)5SplbBizImp商品列表業(yè)務邏輯實現(xiàn)6SpxxBizImp商品信息業(yè)務邏輯實現(xiàn)零部件系統(tǒng)數(shù)據(jù)訪問接口軟件包所包含的類(接口)說明如下圖3.25所示。表3.25 軟件包com.cxstock.dao說明序號類(接口)名字類(接口)說明1BaseDAO基礎(chǔ)數(shù)

33、據(jù)訪問接口2DqkcDAO當前庫存數(shù)據(jù)訪問接口零部件系統(tǒng)數(shù)據(jù)訪問接口實現(xiàn)軟件包所包含的類說明如下圖3.26所示。表3.26 軟件包com.cxstock.dao.impl說明序號類名字類說明1BaseDAOImpl基礎(chǔ)數(shù)據(jù)訪問接口實現(xiàn)2DqkcDAOImpl當前庫存數(shù)據(jù)訪問接口零部件系統(tǒng)所有數(shù)據(jù)使用的基本類軟件包所包含的類說明如下圖3.27所示。表3.27 軟件包.pojo說明序號類名字類說明1Bsd報損單操作2Bsdsp報損單商品操作3Byd報溢單操作4Bydsp報溢單商品操作5Ckd庫存單操作6Ckdsp庫存單商品操作7Gys供應商操作8Jhd進貨單操作9Jh

34、dsp進貨單商品操作10Kh客戶操作11Menu菜單操作12Role角色操作13Rolemenu角色菜單對應操作類14RolemenuId角色菜單對應類定義15Spdw商品單位操作16Splb商品列表操作17Spxx商品信息操作18Thd退庫單操作19Thdsp退庫單商品操作20Tkd客戶退貨單操作21Tkdsp客戶退貨單商品操作22Users用戶表操作23Vusermenu用戶菜單對應操作為系統(tǒng)提供超時檢查、安全過濾的基本類軟件包所包含的類說明如下圖3.28所示。表3.28 軟件包com.cxstock.utils.filter說明序號類名字類說明1LoginedCheckIntercept

35、or登錄過期驗證操作2ReqEncodingFilter請求響應過濾操作3SecurityFilter安全過濾驗證為系統(tǒng)提供分頁、樹形目錄的基本類軟件包所包含的類說明如下圖3.29所示。表3.29 軟件包com.cxstock.utils.pubutil說明序號類名字類說明1ComboData數(shù)據(jù)清除操作2Page分頁操作3TreeNode樹形目錄操作4TreeNodeChecked樹形目錄節(jié)點檢查操作為系統(tǒng)提供數(shù)據(jù)備份恢復等處理的基本類軟件包所包含的類說明如下圖3.30所示。表3.30 軟件包com.cxstock.utils.system說明序號類名字類說明1Constants信息接收操作

36、2DataCopy數(shù)據(jù)拷貝操作3DataTime數(shù)據(jù)時間記錄操作4DoubleMath計算工具操作5Tools工具服務操作四、Hibernate實現(xiàn)(一)創(chuàng)建持久化類數(shù)據(jù)庫中的表數(shù)據(jù)對應分別創(chuàng)建持久化類,負責將數(shù)據(jù)內(nèi)容持久化到數(shù)據(jù)庫中,如下商品分類對應的持久化類。package com.cxstock.dao;import java.io.Serializable;import java.sql.Connection;import java.util.Collection;import java.util.List;public interface BaseDAO public void sa

37、ve(Object obj); /* 保存指定的持久化對象 */public void saveOrUpdate(Object obj); /* 保存或更新指定的持久化對象 */public void deleteById(Class clazz, Serializable id); /* 刪除指定ID的持久化對象 */public void delete(Object obj); /* 刪除指定ID的持久化對象 */public Object loadById(Class clazz, Serializable id); /* 加載指定ID的持久化對象 */public Object loa

38、dObject(String hql); /*加載滿足條件的持久化對象*/public List findByHql(String hql); /* 查詢指定類的滿足條件的持久化對象 */public List findInProperty(String clazz, String propertyName, String value);public List findLikeProperty(String clazz, String propertyName, String value);public List findByProperty(String clazz, String prop

39、ertyName, Object value);public List findByProperty(String clazz, String propertyName, Object value);public List listAll(String clazz);public int update(String hql);public int countAll(String clazz);public int countQuery(String hql);public List findInProperty(String clazz, String propertyName, String

40、 value, int start, int limit);public List findLikeProperty(String clazz, String propertyName, String value, int start, int limit);public List findByProperty(String clazz, String propertyName, String value, int start, int limit);public List findByProperty(String clazz, String propertyName, Object val

41、ue, int start, int limit);public List listAll(String clazz, int start, int limit);public List findByHql(String hql, int start, int limit);public Connection getConnection();public void saveOrUpdateAll(Collection collection);public void callProcedure(String call);(二)Hibernate的配置Hibernate使用Java編寫,是一個高度

42、可配置的軟件包,通過兩種配置文件格式進行配置。(1)hibernate.cfg.xml:啟動時,Hibernate查詢這個XML的屬性進行操作,如數(shù)據(jù)庫連接字符串和密碼、數(shù)據(jù)庫方言,以及映射文件位置等。Hibernate在類路徑中查找這個文件。(2)*.hbm.xml:映射描述文件,告訴Hibernate如何將特定的Java類和一個或多個數(shù)據(jù)庫表格中的數(shù)據(jù)進行映射。MyEclipse提供了工具進行這兩種配置文件的處理,并能將映射文件、數(shù)據(jù)庫數(shù)據(jù)和Java類進行同步。實體映射文件的命名為:實體名.hbm.xml。它告訴Hibernate怎么來做對象映射、向哪個表插入數(shù)據(jù)、每個屬性的數(shù)據(jù)類型,以及

43、對應數(shù)據(jù)表里的列名。一般來說,一個實體對應一個配置文件。<class name="dao.User" table="users(數(shù)據(jù)庫表格)" catalog="數(shù)據(jù)庫名字"><!- 主鍵字段配置, hibernate 為我們生成主鍵id, 必須定義-><id name="id" type="java.lang.Integer"><column name="id" /><generator class="incr

44、ement" /><!- increment 是先從數(shù)據(jù)庫取最大ID 然后加1, 再存入數(shù)據(jù)庫assigned 必須手工賦值給一個 IDauto, identify, sequence, native, uuid.hex, hilo 等等-></id><!- property 默認把類的變量映射為相同名字的表列,當然我們可以修改其映射方式-><!- 類型寫法兩種 Hibernate type: string, int; Java 類的全名: java.lang.Integer-><property name="us

45、ername" type="java.lang.String"><!- 指定對應數(shù)據(jù)庫中的字段信息 -><column name="username" length="200" not-null="true" /></property>每個持久化Java類都需要創(chuàng)建單獨的映射描述文件,映射描述文件(文件擴展名為*.hbm.xml)將告訴Hibernate如何將特定的Java類和一個或多個數(shù)據(jù)庫表中的數(shù)據(jù)進行映射。該文件名為Message.hbm.xml,把類Mes

46、sage映射到表tb_message,其中id為主鍵,property告訴Hibernate類和表中元素的對應關(guān)系。Category.hbm.xml代碼如下:<?xml version="1.0" encoding="utf-8"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN""<hibernate-mapping> <class name="com.eshop.enti

47、ty.Category" table="tb_category"> <id name="id" type="java.lang.Long"> <column name="id" /> <generator class="identity" /> </id> <property name="name" type="java.lang.String"> <column name=

48、"name" length="50" not-null="true" /> </property> <set name="types" inverse="true" cascade="all" lazy="false"> <key> <column name="category_id" not-null="true" /> </key> <one

49、-to-many class="com.eshop.entity.Type" /> </set> </class></hibernate-mapping>五、Spring業(yè)務層實現(xiàn)(一) Action接口定義軟件包com.cxstock.dao放置了機械零部件庫存管理系統(tǒng)數(shù)據(jù)訪問的業(yè)務接口,其文件列表如下:BaseDAO:基礎(chǔ)數(shù)據(jù)訪問接口下面以商品實體操作接口BaseDao .java的定義闡述其如何定義。BaseDao .java接口定義了機械零部件庫存管理系統(tǒng)的數(shù)據(jù)統(tǒng)一訪問接口,包括:保存指定對象、更新指定對象、刪除指定ID、加

50、載指定ID、加載滿足條件的ID、條件更新、商品統(tǒng)計、分頁等。主要定義代碼如下:package com.cxstock.dao;import java.io.Serializable;import java.sql.Connection;import java.util.Collection;import java.util.List;/* 統(tǒng)一數(shù)據(jù)訪問接口 */SuppressWarnings("unchecked")public interface BaseDAO /* 保存指定的持久化對象 */public void save(Object obj);/* 保存或更新指

51、定的持久化對象 */public void saveOrUpdate(Object obj);/* 刪除指定ID的持久化對象 */public void deleteById(Class clazz, Serializable id);/*加載滿足條件的持久化對象*/public Object loadObject(String hql);/* 查詢指定類的滿足條件的持久化對象 */public List findByHql(String hql);/* 裝載指定類的查詢結(jié)果 */public List findLikeProperty(String clazz, String propert

52、yName, String value);/* 條件更新數(shù)據(jù) */public int update(String hql);/* 統(tǒng)計指定類的所有持久化對象 */public int countAll(String clazz);/* 分頁裝載指定類的查詢結(jié)果 */public List findInProperty(String clazz, String propertyName, String value, int start, int limit);/* 從連接池中取得一個JDBC連接 */public Connection getConnection();/* 批量保存、修改 */

53、public void saveOrUpdateAll(Collection collection);/* 調(diào)用存儲過程 */public void callProcedure(String call);(二) Spring配置機械零部件管理系統(tǒng)服務業(yè)務的Spring配置文件spring-basic.xml代碼如下:<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xs

54、i="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.5.xsd"><!- DataSource -><bean id="dataSource" class="mons.dbcp.BasicDataSource">

55、<property name="driverClassName" value="com.mysql.jdbc.Driver"></property><property name="url" value="jdbc:mysql:/localhost:3306/mystock?useUnicode=true&amp;characterEncoding=UTF-8"></property><property name="username"

56、value="root"></property><property name="password" value="admin"></property></bean> <!- SessionFactory -> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property

57、 name="dataSource" ref="dataSource"/> <property name="mappingDirectoryLocations"> <list> <value>classpath:com/cxstock/pojo/xml/</value> </list> </property> <!- 設(shè)置Hibernate的相關(guān)屬性 -> <property name="hibernateProperties"> <props> <!- 設(shè)置Hibernate的數(shù)據(jù)庫方言 -> <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <!- 設(shè)置Hibernate是否在控制臺輸出SQL語句,開發(fā)調(diào)試階段通常設(shè)為true -> <prop key="hibernate.show_sql">false&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論