下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、關(guān)于本JBchilaor9TheJ2EETutorialSecondEditionProfessionalEJBCoreJ2EEPatterns:BestPracticesandDesignStrategies,SecondEditionJ2EEApplicationsandBEAWebLogicServersUML2Toolkit、SQLServer2000BibleJDBCDatabaseProgrammingwithJ2EEJavaToolsforExtremeProgramming:MasteringOpenSourceToolsIncludingAnt,Junit,andCACTUS試與JUnit實(shí)踐》12本系統(tǒng)。這12本系統(tǒng)全面講述了Java語(yǔ)言的各種技術(shù)。上述都是關(guān)于Java語(yǔ)言的一系列,可以作為本文檔的參考書(shū)。用。本文檔程序?qū)嵗闹v述步驟是先講述服務(wù)EJB的創(chuàng)建與測(cè)試,接著講述客戶端的數(shù)據(jù)類(lèi)的創(chuàng)建,再講述主窗二、本文檔第2章:企業(yè)進(jìn)、銷(xiāo)、存管理信息系統(tǒng)的建模分析。第4章:企業(yè)進(jìn)、銷(xiāo)、存管理信息系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)分析。的第5章:企業(yè)進(jìn)、銷(xiāo)、存管理信息系統(tǒng)的項(xiàng)目創(chuàng)建與設(shè)置。應(yīng)用程序的創(chuàng)建、Cactus測(cè)試環(huán)境的設(shè)置、EAR應(yīng)用程序創(chuàng)建和部署,使讀者能掌握企業(yè)進(jìn)、銷(xiāo)、存管理信息系統(tǒng)序、會(huì)計(jì)科目管理窗口程序、報(bào)表管理窗口程序、用戶日志查看窗口程序、退出系統(tǒng)程序和基礎(chǔ)信息模塊6個(gè)互聯(lián)一(一)進(jìn)、銷(xiāo)、存管理信息系統(tǒng)簡(jiǎn) (一)進(jìn)、銷(xiāo)、存管理信息系統(tǒng)本系統(tǒng)可以在Windows2000、WindowsNT、WindowsXP、Linux和Unix平臺(tái)應(yīng)用STOCKMIS的英文全稱(chēng)是StockManagementInformationSystem,中文全稱(chēng)是進(jìn)、銷(xiāo)、存管理信息系統(tǒng)。(二)進(jìn)、銷(xiāo)、存管理信息系統(tǒng)整體 登錄用戶可以切換用戶,。一(三)小 本軟件符合IBM的CUA標(biāo)準(zhǔn)和的GUI標(biāo)準(zhǔn)本系統(tǒng)應(yīng)用JDK1.4.0、J2EE1.3.1技術(shù)標(biāo)準(zhǔn)通口。本系統(tǒng)的通口由WebLogic提供(三)(四)問(wèn)(一)用例圖分節(jié)(二)基礎(chǔ)信息模塊活動(dòng)圖分 修改活動(dòng) (三)進(jìn)貨模塊活動(dòng)圖分析為每張進(jìn)貨單,根據(jù)企業(yè)的實(shí)際情況批準(zhǔn)進(jìn)貨單,訂購(gòu)員完成電子簽名后2張進(jìn)貨單,一聯(lián)送交供應(yīng)商,一 現(xiàn)金賬。進(jìn)貨退貨分為3個(gè)程序,分別是訂購(gòu)員填寫(xiě)退貨單程序、現(xiàn)金管理員收取已經(jīng)付出金額程序、驗(yàn)收員將貨物退進(jìn)貨會(huì)計(jì)處理分為3個(gè)程序?qū)崿F(xiàn),分別是審核進(jìn)貨會(huì)計(jì)分錄程序、編寫(xiě)進(jìn)貨會(huì)計(jì)分錄程序和查詢(xún)進(jìn)貨會(huì)計(jì)分錄(四)庫(kù)存模塊活動(dòng)圖分析庫(kù)存盤(pán)4個(gè)程序完成,分別是庫(kù)存盤(pán)點(diǎn)計(jì)數(shù)程序、庫(kù)存盤(pán)點(diǎn)核查程序、盤(pán)點(diǎn)損失單管理程序、盤(pán)點(diǎn)盈收單庫(kù)存會(huì)計(jì)處理分為3個(gè)程序?qū)崿F(xiàn),分別是審核庫(kù)存會(huì)計(jì)分錄程序、編寫(xiě)庫(kù)存會(huì)計(jì)分錄程序和查詢(xún)庫(kù)存會(huì)計(jì)分錄(五)銷(xiāo)售模塊活動(dòng)圖分析生成會(huì)計(jì)分錄的商品銷(xiāo)售單,當(dāng)用戶退出窗口時(shí),系統(tǒng)自動(dòng)生成會(huì)計(jì)分錄和將現(xiàn)金收入記錄在現(xiàn)金賬。銷(xiāo)售會(huì)計(jì)處理分為3個(gè)程序?qū)崿F(xiàn),分別是審核銷(xiāo)售會(huì)計(jì)分錄程序、編寫(xiě)銷(xiāo)售會(huì)計(jì)分錄程序和查詢(xún)銷(xiāo)售會(huì)計(jì)分錄程序。3個(gè)活動(dòng)圖與進(jìn)貨會(huì)計(jì)處理相同,請(qǐng)參考2.3.7節(jié)。(六)系統(tǒng)部署圖二(七)小 (七)(八)問(wèn)三(一)文件總結(jié)構(gòu) 析析 (一)文件總結(jié) (二)源代碼的文件結(jié)構(gòu)圖(1)maininterface是主窗口程序的 (2)baseinforinterface是基礎(chǔ)信息模塊程序的 (3)stockinterface是進(jìn)貨模塊程序的 (4)stockmanageinterface是庫(kù)存模塊程序的 stockmanagementpro是EJB源代碼 user是用戶類(lèi) print是打印程序的 (11)cactustest是EJB測(cè)試類(lèi)的 (12)junittest是客戶端測(cè)試類(lèi)的 (13)servlet是Servlet程序的 (三)互聯(lián)網(wǎng)程序的文件結(jié)構(gòu) 文件是互聯(lián)網(wǎng)程序在(四)三(五)問(wèn)與 (五)問(wèn)程序的備份文件如何放人 答:當(dāng)用戶修改程序時(shí),JBuilder自動(dòng)將程序的備份文件放入 析析如何在WebLogic服務(wù)器創(chuàng)建數(shù)據(jù)庫(kù)聯(lián)接緩沖池如何創(chuàng)建JNDI數(shù)據(jù)源(一)數(shù)據(jù)字典為數(shù)據(jù)類(lèi)大唯主外備1**2用戶3基礎(chǔ)信息模塊的用戶權(quán)456索排升數(shù)據(jù)類(lèi)大允許空唯主外備1**序23商品類(lèi)別名4商品類(lèi)別描索排升數(shù)據(jù)類(lèi)大唯主外備1**2商品分類(lèi)標(biāo)345678規(guī)9庫(kù)存上限最大庫(kù)存下限最小索排升大唯主外備1**2地34簡(jiǎn)5678傳9固地銀備索排大唯主外備1**23位4描索排升大唯主自動(dòng)增外備1**2地34簡(jiǎn)567數(shù)據(jù)類(lèi)大唯主外備8傳9固地銀電子郵客戶信用限備索排升大唯主外備1**序23會(huì)計(jì)科目名索排升數(shù)據(jù)類(lèi)大允許空唯主外備1**序2操作程序名3操作內(nèi)4用戶名5操作時(shí)索排升值加備1**2單據(jù)類(lèi)型,0表示進(jìn)貨訂單,1表示進(jìn)貨退貨單,2表示商品調(diào)出單,3表示商品調(diào)入單,4表示銷(xiāo)售出庫(kù)單,5表示銷(xiāo)售退貨單,6表示盤(pán)點(diǎn)損失單,7表示盤(pán)點(diǎn)盈收單,8上期轉(zhuǎn)入單,9表示數(shù)量分拆調(diào)出單,10表示數(shù)量分拆調(diào)入單,11表示數(shù)量組合調(diào)出單,12表示數(shù)量組合調(diào)入單,133供應(yīng)商調(diào)拔單的關(guān)聯(lián)標(biāo)4請(qǐng)購(gòu)員名字商品調(diào)出用戶5訂購(gòu)員名字調(diào)入倉(cāng)庫(kù)名值加備6驗(yàn)收員名字商品驗(yàn)收用戶7現(xiàn)金管理員名8收貨地9倉(cāng)庫(kù)名*訂單日期調(diào)出日*到貨日期驗(yàn)收日完成狀態(tài),0表示進(jìn)行,1表示撤消,2表示完備索引名排序升序大小默值值唯—主加外鍵備1**23碼45數(shù)6索引名名排序升數(shù)據(jù)類(lèi)值空增備1**2單據(jù)類(lèi)型,0表示前臺(tái)銷(xiāo)貨單據(jù),1表示信用銷(xiāo)單據(jù),2表示前臺(tái)銷(xiāo)售退貨單據(jù),3表示信用銷(xiāo)售3客45信用銷(xiāo)售用戶名6現(xiàn)金管理員名789*默空增備完成狀態(tài),0表示進(jìn)行,1表示撤消,2表示完備索引排序升序數(shù)據(jù)類(lèi)大允許空唯主外備1**明細(xì)編2單據(jù)編34實(shí)際售5數(shù)索排升型大小默值允空唯—主鍵自增外鍵備1**2相關(guān)聯(lián)的票據(jù)標(biāo)3票據(jù)類(lèi)型,0表示應(yīng)付票據(jù),124金5供應(yīng)商名字或者客戶名6開(kāi)票據(jù)的用戶7現(xiàn)金管理員名89*收款或者付款日完成狀態(tài),0表示進(jìn)行,1表示撤消,2表完備索引排序升序大允許空唯主外備1**序2相關(guān)聯(lián)的票據(jù)標(biāo)3借貸標(biāo)識(shí),0表示借,1表示4數(shù)據(jù)類(lèi)大唯主自動(dòng)增外備56索排升型大小默值值唯—主鍵加外鍵備1**序2相關(guān)聯(lián)的票據(jù)標(biāo)3記帳用4審核用5記帳日6*審核日7完成狀態(tài),0表示進(jìn)行,1表示撤消,2完8備索引排序升序型大小默值值唯—主鍵加外鍵備1**序2與accountEntryLedger數(shù)據(jù)表的聯(lián)系段3借貨標(biāo)識(shí),0表示借,1表示4會(huì)計(jì)科5發(fā)生金索引排序升序(二)數(shù)據(jù)表的關(guān)系分四(三)數(shù)據(jù)表的SQL創(chuàng)建語(yǔ) 表的關(guān)系是一對(duì)一關(guān)系,相關(guān)聯(lián)的字段是stockLedger數(shù)據(jù)表的orderld字段、saleLedger數(shù)據(jù)表的saleld字段、currentAccountLedger數(shù)據(jù)表的linkld字段?,F(xiàn)金賬套數(shù)據(jù)表(cashLedger)與往來(lái)賬套數(shù)據(jù)表(currentAccountLedger)是一對(duì)一關(guān)系,相關(guān)聯(lián)的字段currentAccountLedSer數(shù)據(jù)表的currentAccountld字段和cashLedger數(shù)據(jù)表的linkld字段會(huì)計(jì)分錄賬套數(shù)據(jù)表(accountEntryLedger)(accountEntrySubLedger)是一對(duì)多關(guān)系,相關(guān)聯(lián)的字段是accountEntryLedger數(shù)據(jù)表的serialld字段和accountEntrySubLedger數(shù)據(jù)表的linkSerialld字段。賬套數(shù)據(jù)表(currentAccountLedger)是一對(duì)一關(guān)系,相關(guān)聯(lián)的字段是accountEntryLedger數(shù)據(jù)表的linkld字段、stockLedger數(shù)據(jù)表的orderld字段、saleLedger數(shù)據(jù)表的saleld字段、currentAccountLedger數(shù)據(jù)表的currentAccountld其他的數(shù)據(jù)表對(duì)應(yīng)關(guān)系不經(jīng)常使用,將在模塊編碼中講述,如商品數(shù)據(jù)表 與庫(kù)存賬套明細(xì)數(shù)據(jù)(三)數(shù)據(jù)表的SQL創(chuàng)建語(yǔ)本節(jié)介紹數(shù)據(jù)表的SQL創(chuàng)建語(yǔ)句CREATETABLECREATETABLEuserTableuserPasswordnvarchar(50)NOTNULL,baseInforFunctionintNOTNULL,stockFunctionintNOTNULL,stockManageFunctionintNOTNULL,saleFunctionintNOTNULL)CREATECREATETABLE(categoryIdintNOTNULLPRIMARYKEY,parentIdintNOTNULL,categoryNamenvarchar(100)NOTNULL,categoryDescriptionntextNOTNULL)CREATETABLEgoodsCREATETABLEgoodscategoryIdintNOTNULL,goodsNamenvarchar(100)NOTNULL,goodsNickNamenvarchar(50)NOTNULL,goodsAssistantNamenvarchar(10)NOTNULL,goodsPYNamenvarchar(10)NOTNULL,unitnvarchar(10)NOTNULL,specificationnvarchar(50)NOTNULL,producernvarchar(50)NOTNULL,upperLimitintNOTNULL,lowerLimitintNOTNULL,discountnumeric(18,2)NOTNULL))CREATE rrZonenvarchar(20)NOTNULL,pyCodenvarchar(10)NOTNULL,abbreviationnvarchar(20)NOTNULL,companyPhonenvarchar(15)NOTNULL,linkmannvarchar(20)NOTNULL,mobilePhonenvarchar(15)NOTNULL,faxnvarchar(15)NOTNULL,fixedPhonenvarchar(15)NOTNULL,addressnvarchar(100)NOTNULL,zipCodenvarchar(10)NOTNULL,bankNamenvarchar(50)NOTNULL,bankAccountnvarchar(50)NOTNULL,nvarchar(20)NOTNULL,homesitenvarchar(20)NOTNULL,remarkntextNOTNULL)pyCodenvarchar(10)NOTNULL,locationnvarchar(100)NOTNULL,descriptionntextNOTNULL)CREATETABLEcustomercustomerZonenvarchar(20)NOTNULL,pyCodenvarchar(10)NOTNULL,abbreviationnvarchar(20)NOTNULL,companyPhonenvarchar(15)NOTNULL,linkmannvarchar(20)NOTNULL,mobilePhonenvarchar(15)NOTNULL,faxnvarchar(15)NOTNULL,fixedPhonenvarchar(15)NOTNULL,addressnvarchar(100)NOTNULL,zipCodenvarchar(10)NOTNULL,bankNamenvarchar(50)NOTNULL,bankAccountnvarchar(50)NOTNULL,nvarchar(20)NOTNULL,homesitenvarchar(20)NOTNULL,creditlimitnumeric(18,2)NOTNULL,remarkntextNOTNULL)CREATETABLECREATETABLE(accountIdintNOTNULLPRIMARYKEY,parentIdintNOTNULL,)CREATECREATETABLEuserLogidintNOTNULLPRIMARYprogramNamenvarchar(50)NOTNULL,userNamenvarchar(50)NOTNULL,operationDatedatetimeNOT))CREATETABLECREATETABLEstockLedgerorderTypeintNOTNULL,rNamenvarchar(50)NOTNULL,submitUsernvarchar(50)NOTNULL,commitUsernvarchar(50)NOTNULL,checkUsernvarchar(50)NOTNULL,cashUsernvarchar(50)NOTNULL,addressnvarchar(100)NOTNULL,warehousenvarchar(20)NOTNULL,orderDatedatetimeNULL,stockDatedatetimeNULL,onProcessintNOTNULL,remarkntextNOT)CREATECREATETABLE(serialIdintNOTNULLPRIMARYKEY,orderIdnvarchar(20)NOTNULL,costPricenumeric(18,2)NOTNULL,tyintNOTNULL,)CREATETABLECREATETABLEsaleLedgersaleIdnvarchar(20)NOTNULLPRIMARYKEY,saleTypeintNOTNULL,customerNamenvarchar(50)NOTNULL,counterUsernvarchar(50)NOTNULL,creditUsernvarchar(50)NOTNULL,cashUsernvarchar(50)NOTNULL,addressnvarchar(100)NOTNULL,fillerDatedatetimeNOTNULL,deliveryDatedatetimeNULL,remarkntextNOT)用戶可以應(yīng)用程序創(chuàng)建新的賬套數(shù)據(jù)表(請(qǐng)參考6.7節(jié)),賬套數(shù)據(jù)表共有8個(gè),分別是stockLedger、stockSubLedgerSaleLedgerSaleSubLedgercurrentAccountLedgercashLedgeraccountEntryLedger、(四)數(shù)據(jù)表的創(chuàng)建和數(shù)據(jù)導(dǎo)如果不熟悉SQLServer的數(shù)據(jù)庫(kù)的創(chuàng)建,請(qǐng)參考《SQLServer2000Bible先選擇stockmanagement數(shù)據(jù)庫(kù),選擇Tools菜單→SQLQueryyzer選項(xiàng)打開(kāi)SQL代碼窗口,將CompositiveExample\stockmanagement.sql文件(應(yīng)用記事本程序打開(kāi),該文件在本設(shè)計(jì)附帶的程序包)的代碼放人SQL代碼窗口,如圖所示。確認(rèn)的數(shù)據(jù)庫(kù)是stockmanagement,單擊上的“運(yùn)行”按鈕,為stockmanagement數(shù)據(jù)庫(kù)創(chuàng)建個(gè)數(shù)據(jù)表(其中有兩個(gè)賬套,分別是200404賬套和200405賬套)。本節(jié)應(yīng)用stoekmanagement.mdb文件 是CompositiveExample,共有32個(gè)數(shù)據(jù)表數(shù)據(jù)打開(kāi)SQLServer管理窗口,選擇Tools菜單→DataTransformationServices→ImportData選項(xiàng),進(jìn)人數(shù)據(jù)導(dǎo)人本例選擇Accessstockmanagement.mdb文件作為導(dǎo)人數(shù)據(jù)庫(kù)本例選擇stockmanagement作為目標(biāo)數(shù)據(jù)庫(kù) 保留默認(rèn)的選項(xiàng)便可,表示立即數(shù)據(jù)庫(kù)。單擊“完成”按鈕,便可以將stockmanagement.mdb的數(shù)據(jù)導(dǎo)人SQLServerstockmanagement數(shù)據(jù)庫(kù),如(五)數(shù)據(jù)庫(kù)聯(lián)接緩沖池的創(chuàng)啟動(dòng)WebLogic服務(wù)器,進(jìn)入WebLogic在左邊的結(jié)構(gòu)樹(shù)選擇examples→Services→JDBC→ConnectionPoolsConfigureanewJDBCConnectionPool…(設(shè)置一個(gè)新的JDBC聯(lián)接緩沖池),如圖所示。四(六)JNDI數(shù)據(jù)源的創(chuàng) 上述4個(gè)步驟完成了stockmanagement數(shù)據(jù)庫(kù)的聯(lián)接緩沖(六)JNDI數(shù)據(jù)源的在WebLogic管理窗口內(nèi)的左邊結(jié)構(gòu)樹(shù)選擇examples→Services→JDBC→TxDataSources,在右邊的內(nèi)容框選擇ConfigureanewJDBCTxDataSource…(設(shè)置一個(gè)新的帶事務(wù)處理的數(shù)據(jù)源),如圖所示。(七)SQL代碼,剖析了數(shù)據(jù)表創(chuàng)建、數(shù)據(jù)導(dǎo)入、數(shù)據(jù)庫(kù)聯(lián)接緩JNDI數(shù)據(jù)源的創(chuàng)建。通過(guò)本章的考查,指導(dǎo)老(八)問(wèn)答:數(shù)據(jù)表關(guān)系不用在數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建,通過(guò)SQL語(yǔ)句where語(yǔ)句實(shí)現(xiàn)便可答:創(chuàng)建數(shù)據(jù)庫(kù)的聯(lián)接緩沖池的作用是提高數(shù)據(jù)庫(kù)的速度,要了解J2EE方面的知識(shí),請(qǐng)參考《TheJ2EETutorialSecondEdition》一書(shū)。五(一)JBuilder項(xiàng)目創(chuàng) (1如何創(chuàng)建進(jìn)、銷(xiāo)、存管理信息系統(tǒng)的JBuilder項(xiàng)目?(2)如何創(chuàng)建進(jìn)、銷(xiāo)、存管理信息系統(tǒng)的EJB模板?如何設(shè)置進(jìn)、銷(xiāo)、存管理信息系統(tǒng)的EJB模板的數(shù)據(jù)源?(5)如何設(shè)置進(jìn)、銷(xiāo)、存管理信息系統(tǒng)的Cactus測(cè)試環(huán)境(6)如何創(chuàng)建和部署EJB和互聯(lián)網(wǎng)模板的應(yīng)用程序(一)JBuilder項(xiàng)目 要進(jìn)一步了解JBuilder的項(xiàng)目設(shè)置,請(qǐng)參考《精通JBuilder9上述3個(gè)步驟完成了StockManagementPro項(xiàng)目的創(chuàng)建(二)EJB模板的EJB的模板創(chuàng)建的步驟如下(Weblogic服務(wù)器,請(qǐng)參考《J2EEApplicationsandBEAWebLogic打開(kāi)JBuilder窗口,選擇Tools菜單→選擇ConfigureServer選項(xiàng),進(jìn)入服務(wù)器的設(shè)置窗口在左邊的結(jié)構(gòu)樹(shù)選擇WebLogicApplicationServer7.x選項(xiàng),勾選EnableServer復(fù)選框,單擊General選項(xiàng)卡,在Homedirectory(主 )內(nèi)選擇WebLogic服務(wù)器的安裝 ,其他的選項(xiàng)由JBuilder自動(dòng)生成。①Homedirectory定義WebLogic服務(wù)器所在的路徑單擊Custom選項(xiàng)卡,進(jìn)入WebLogic服務(wù)器在JBuilder①BEAhomedirectory定義BEA程序的安 ,該參數(shù)由JBuilder自動(dòng)生成②JDKInstallationdirectory定義JDK1.4的安裝路徑⑦Listenaddress定義WebLogic服務(wù)器所在的服務(wù)器名字⑧Listenport定義WebLogic服務(wù)器所在的動(dòng)選擇Project菜單→ProjectProperties選項(xiàng),打開(kāi)項(xiàng)目屬性框,單擊Server選項(xiàng)卡,為項(xiàng)目選擇WebLogic選擇File菜單→New選項(xiàng),單擊Enterprise選項(xiàng)卡,雙擊EJBModule圖標(biāo)④OutputJARfile區(qū)域中的Name定義JAR文件的名字,保留默認(rèn)值⑤OutputJARfile區(qū)域中的PathJAR文件的保存路徑,保留默認(rèn)值。單擊“OK”完成EJB模板的創(chuàng)建。選擇StockManagementEJBProperties選項(xiàng),打開(kāi)EJB模板設(shè)置框。取消AlwayscreateJARwhenbuildingtheproject復(fù)選項(xiàng)的選擇,取消該復(fù)選項(xiàng)的作用是避免每次編譯項(xiàng)目(Ctrl+F9)時(shí)都自動(dòng)編譯EJB模板,節(jié)省項(xiàng)目編譯時(shí)間,但更新EJB后,需要選擇項(xiàng)目面板的StockManagementEJB選項(xiàng),單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇Rebuild選項(xiàng)重新編譯EJB。(三)EJB模板數(shù)據(jù)源的設(shè)打開(kāi)EJB模板,在左邊的結(jié)構(gòu)面板內(nèi)選擇DataSources節(jié)點(diǎn),單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選 的程序包,要進(jìn)一步了解Java聯(lián)接數(shù)據(jù)庫(kù)方面的知識(shí),請(qǐng)參考《JDBCDatabaseProgrammingwithJ2EE③URL(數(shù)據(jù)庫(kù)的聯(lián)接地址)的設(shè)置是“jdbc :sqlserver://localhost:1433的,如果不設(shè)置sa用戶的,保留空值便可。⑥JNDIname的值是“stockManagement”,該WebLogicstockmanagementJNDI數(shù)據(jù)源,請(qǐng)參考4.6節(jié)。局EJB使用,當(dāng)全局EJB在服務(wù)器部署時(shí),該數(shù)據(jù)源不起作用,起作用的是stockManagement數(shù)據(jù)源。如果不能看到上述數(shù)據(jù)表,選擇stockManagement節(jié)點(diǎn),單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇RefreshfromDatabase選項(xiàng),檢查數(shù)據(jù)庫(kù)設(shè)置是否正確,再重新載人數(shù)據(jù)表。選擇結(jié)構(gòu)面板的stockManagement節(jié)點(diǎn)→userTable數(shù)據(jù)表,單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇五(四)互聯(lián)網(wǎng)應(yīng)用程序的創(chuàng) CMP2.0EntityBean選項(xiàng)該選項(xiàng)的作用是創(chuàng)建userTable數(shù)據(jù)表的全局EJB選擇項(xiàng)目面板的StockManagementEJB選項(xiàng),單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇RebuildEJB模板,生成StockManagementEJB.jar文件上述5個(gè)步驟完成了EIB模板數(shù)據(jù)源的設(shè)置,第(3)步至第(5)步的作用是創(chuàng)userTable數(shù)據(jù)表的全局EJB,使EIB模板可以生成StockManagementEJB.jar文件,EJB的具體應(yīng)用請(qǐng)參考6.1節(jié)。(四)互聯(lián)網(wǎng)應(yīng)用程序打開(kāi)項(xiàng)目StockManagementPro,選File菜單→New選項(xiàng),單擊Web選項(xiàng)卡,雙擊WebApplication ③BuildWAR定義互聯(lián)網(wǎng)應(yīng)用程序的編譯方式,保留默認(rèn)選項(xiàng)便可。(五)Cactus測(cè)試環(huán)境的設(shè)置CactusServlet和EJB,步驟如下(要進(jìn)一步了解Cactus技術(shù),請(qǐng)參考《JavaToolsforExtremeProgramming:MasteringOpenSourceToolsIncludingAnt,Junit,andCACTUS》):選擇Wizard菜單→CactusSetup選項(xiàng),進(jìn)入Cactus測(cè)試環(huán)境的設(shè)置,Cactus②設(shè)置Cactus關(guān)聯(lián)的壓縮包,選擇stockmanagement.war選項(xiàng)用是定義Cactus測(cè)試程 #定義Cactus工具應(yīng) 1:#定義Servlet導(dǎo)向器的cactusservletRedirectorName=#定義用是定義Cactus測(cè)試程 #定義Cactus工具應(yīng) 1:#定義Servlet導(dǎo)向器的cactusservletRedirectorName=#定義JSP導(dǎo)向器cactusjspRedirectorName=#定義filter導(dǎo)向器的cactuscactusenableLogging=true1:要成功運(yùn)行Cacms客戶端的程序,需要正確設(shè)置cactus.properties文件的cactus.contextURL參數(shù) (六)EAR應(yīng)用程序創(chuàng)建和部選擇File菜單→New選項(xiàng),單擊Enterprise選項(xiàng)卡,雙擊EAREAR7步1步定義EAR(stockmanagementapp)EAR2步選擇EJB模板如果要選擇項(xiàng)目外的EJBJAR文件,可以單擊ExternalJARFiles選項(xiàng)卡選擇項(xiàng)目外的EJBJAR文件4步選擇EJB的客戶端程序,本例不選擇任何EJB的客戶端程序單擊“Finish”按鈕完成EAR的應(yīng)用程序創(chuàng)建,編譯EAR應(yīng)用程序,生成stoekmanagementapp.ear展開(kāi)EAR文件,查看其中的文件 <?xmlversion="10"encoding="UTF-<?xmlversion="10"encoding="UTF- Inc 1 suncom/dtd/application_1_3<display-name>stockmanagementapp</display-<ejb>StockManagementEJB<web-uri>stockmanagementwar</web-<context-root>stockmanagement</context-在右邊的內(nèi)容框內(nèi)單擊Configureanew ,進(jìn)入EAR應(yīng)用程序的部署步驟,如圖所示五(六)EAR應(yīng)用程序創(chuàng)建和部 of行最前面的機(jī)器名字,顯示盤(pán)符,通過(guò)單擊相應(yīng)的盤(pán)符和路徑,顯示stockmanagementapp.ear文件,如圖所單擊stockmanagementapp.ear文件旁邊的 examplesServer為EAR應(yīng)用程序的服務(wù)器單擊“ConfigureandDeploy”按鈕部署EAR5—34EAR應(yīng)用程序可以同時(shí)部署JAR文件和WAR網(wǎng)應(yīng)用程序的創(chuàng)建、Cacms測(cè)試環(huán)境的設(shè)置、EAR應(yīng)用程序創(chuàng)建和部署,使讀者能掌握企業(yè)進(jìn)、銷(xiāo)、存管理信息系(七)問(wèn)如何安裝Weblogic服務(wù)器為什么要取消EJB模板的AlwayscreateJARwhenbuildingtheprject復(fù)選項(xiàng)的選擇為什么EJBJDBCWebLogicJDBC驅(qū)動(dòng)程序可答:EJB模板數(shù)據(jù)源應(yīng)用的JDBC驅(qū)動(dòng)程序是JDBC驅(qū)動(dòng)程序包,WebLogic的數(shù)據(jù)庫(kù)聯(lián)接緩沖池應(yīng)用的JDBC驅(qū)動(dòng)程序是WebLogicJDBCJBuilder上設(shè)置數(shù)據(jù)源的作用是在本地創(chuàng)建一個(gè)數(shù)據(jù)數(shù)據(jù)源,使用WebLogic自帶的JDBC驅(qū)動(dòng)程序包建立數(shù)據(jù)庫(kù)聯(lián)接,所以?xún)烧叩腏DBC驅(qū)動(dòng)程序可以不相同。(一)用戶登錄窗口程本節(jié)將介紹用戶登錄窗口程序和其涉及的全局EJB、狀態(tài)EJB全局EJB和UserLogUserTable全局EJB的創(chuàng)建與測(cè)UserTable全局EJB的創(chuàng)建與測(cè)試步驟如下打開(kāi)項(xiàng)目StockManagementPro,打EJB模板StockManagementEJB schemaname屬性值必須和EJBSQL語(yǔ)句的數(shù)據(jù)表②Interfaces屬性定義EJB的接口,local將EJB所有屬性的InejbCreate值設(shè)為“true”,作用是使卻ejbCreate方法包括這些屬性值。是第(2)步定義 完成創(chuàng)建后的UserTable全局EJB6-4所示packagepackageimportjavautilpublicinterfaceUserTableHomeextendsjavaxejbEJBLocalHomepublicUserTablecreate(StringuserName,StringuserPassword,intbaseInforFunction,intstockFunction,intstockManageFunction,intsaleFunction)throwsCreateException?publicCollectionfindByUserName(StringuserName)throws packagepackageimportjavautilpublicinterfaceUserTableextendsjavaxejb{publicStringpublicStringgetUserPassword()?publicvoidsetBaseInforFunction(intbaseInforFunction)?publicintgetBaseInforFunction()?publicintgetStockFunction()?publicintgetStockManageFunction()?publicintgetSaleFunction()?}importjavaxejb*?publicclassUserTableBeanimplements{EntityContextpublicjavalangStringejbCreate(javalangStringjavalangStringintbaseInforFunction,intintstockManageFunction,intsaleFunction){setUserName(userName)?return}publicvoidejbPostCreate(javalangStringjavalangStringintbaseInforFunction,intintstockManageFunction,intsaleFunction)CreateException}publicvoidejbRemove()throwsRemoveException} voidsetBaseInforFunction(intbaseInforFunction)? voidsetStockFunction(intstockFunction)? voidsetSaleFunction(intsaleFunction)? javalangString intgetBaseInforFunction()?intintgetSaleFunction()?publicvoidejbLoad()}publicvoidejbStore()}publicvoidejbActivate()}publicvoidejbPassivate()}publicvoid{thisentityContext=}publicvoidsetEntityContext(EntityContext{thisentityContext=}}選擇File菜單→New選項(xiàng),打開(kāi)程序創(chuàng)建窗口,單擊Enterprise選項(xiàng)卡,雙EJBTestClient圖標(biāo),進(jìn)入EJB的創(chuàng)建步驟,選擇CactusJUnitTest單選項(xiàng),表示應(yīng)用Cactus技術(shù)測(cè)試EJB。 packageimportorgapachecactus*?importjavaxnaming*?importjavautilimportpackageimportorgapachecactus*?importjavaxnaming*?importjavautilimportjavarmiprivatestaticfinalStringERRORNULLREMOTE對(duì)象未定義"?privatestaticfinalintMAXOUTPUTLINELENGTH=100?privatebooleanlogging=false?privateUserTableHomeuserTableHome=null?privateUserTableuserTable=null?publicTestUserTableCactus1(String{}//初始化EJBpublicvoidinitializeLocalHome()throws{Contextcontext=new}publicvoidsetUp()throws{supersetUp()?}publicvoidtearDown()throws{userTableHome=null?userTable=null?super}//測(cè)試記錄創(chuàng)建方publicvoidtestCreateUser()throwsException{StringuserName="test"?StringuserPassword="test"?intbaseInforFunction=0?intstockFunction=0?intstockManageFunction=0?intsaleFunction=0?//創(chuàng)建一條新記}//測(cè)試記錄更新方publicvoidtestUpdateUser()throwsException{StringuserName="test"?StringuserPassword="test1"?intbaseInforFunction=1?intstockFunction=1?intstockManageFunction=1?intsaleFunction=1?//根據(jù)主鍵找到記錄//userTablesetUserPassword(userPassword)?userTablesetStockFunction(stockFunction)?userTablesetSaleFunction(saleFunction)?//檢查更新thisassertEquals("returnvalue",userPassword,userTablegetUserPassword())?thisassertEquals("returnvalue",baseInforFunction,userTablethisassertEquals("returnvalue",stockFunction,userTablegetStockFunction())?thisassertEquals("returnvalue",stockManageFunction,userTable}//publicvoidtestFindByUserName()throws//查找用戶名為jackif(colsize()>0){javautilIteratoriterator=coliterator()?while(iteratorhasNext()){//取 接userTable=(UserTable)javaxrmiPortableRemoteObjectnarrow(iteratornext(),UserTableclass)?}}}//測(cè)試記錄刪除方publicvoidtestDeleteUser()throwsException{StringuserName="test"?//根據(jù)主鍵找到記錄//testthisassertEquals("returnvalue",0,colsize())?}}JBuilder重新編譯EJB模板和EAR應(yīng)用Weblogic服務(wù)器的"DeployApplication”按鈕重新部署stockmanagement.war文件和StockManagementEJB.jar。EAR應(yīng)用程序的部署請(qǐng)參考5.6節(jié)UserLog全局EJB的創(chuàng)建與測(cè)UserLog全局EJB的創(chuàng)建與測(cè)試步驟如下單中選擇CreateCMP2.0EntityBean選項(xiàng),創(chuàng)建userLog數(shù)據(jù)表的全局EJB。將EJB 將UserLogEJB所有屬性的InejbCreate()值設(shè)為“true”,作用是使ejbCreate將鼠標(biāo)移到EJB,單擊鼠標(biāo)右鍵,從彈出的快捷菜單中選擇Add選項(xiàng)-*Finder選項(xiàng),創(chuàng)建EJB尋找方法,名③Inputparamerters屬性的值為空完成UserLog全局EJB的創(chuàng)建packagepackageimportjavautil*?importjavasql*?publicinterfaceUserLogHomeextendsjavaxejbEJBLocalHomepublicUserLogcreate(Integerid,StringprogramName,StringoperationContent,StringuserName,TimestampoperationDate)throwspublicCollectionfindAll()throwspublicCollectionfindByProgramName(StringprogramName)throwsFinderException?publicCollectionfindByUserName(StringuserName)throwsFinderException?publicUserLogfindByPrimaryKey(Integerid)throwsFinderException?}packagepackageimportjavautil*?importjavasql*?publicinterfaceUserLogextendsjavaxejb{publicIntegerpublicStringgetProgramName()?publicStringgetOperationContent()?publicStringgetUserName()?publicTimestampgetOperationDate()?}importjavaxejb*?publicimportjavaxejb*?publicclassUserLogBeanimplements{EntityContextpublicjavalangIntegerejbCreate(javalangIntegerid,javalangStringprogramName,javalangStringoperationContent,javalangStringuserName,javasqlTimestampoperationDate)throwsCreateException{returnnull?}publicvoidejbPostCreate(javalangIntegerid,javalangStringprogramName,javalangStringoperationContent,javalangStringuserName,javasqlTimestampoperationDate)throwsCreateException{}publicvoidejbRemove()throwsRemoveException} voidsetId(javalangInteger voidsetProgramName(javalangStringprogramName)? voidsetOperationContent(javalangStringoperationContent)? voidsetUserName(javalangStringuserName)? javalangIntegergetId()? javalangStringgetProgramName()? javalangStringgetUserName()? javasqlTimestampgetOperationDate()?publicvoidejbLoad(){}publicvoidejbStore()}publicvoidejbActivate()}publicvoidejbPassivate()}publicvoid{thisentityContext=}publicvoidsetEntityContext(EntityContext{thisentityContext=}}創(chuàng)建UserLog全局EJB的測(cè)試類(lèi)TestUserLogCactus1,代碼如下 package importorgapachecactus*?importjavaxnaming*?importjavasqlTimestamp?importjavautil*?privatestaticfinalStringERROR_NULL_REMOTE對(duì)象未定義"?privatestaticfinalintMAX_OUTPUT_LINE_LENGTH=100?privatebooleanlogging=false?privateUserLogHomeuserLogHome=null?privateUserLoguserLog=null?publicTestUserLogCactus1(String{}//EJB初始化方publicvoidinitializeLocalHome()throws{Contextcontext=newuserLogHome=(UserLogHome)context}publicvoidsetUp()throws{supersetUp()?}publicvoidtearDown()throws{userLogHome=null?userLog=null?}publicvoidtestCreateUserLog()throwsException{IntegeridnewInteger(1)?StringprogramName="登陸窗口"?StringoperationContent="登陸"?StringuserName="jack"?javautilCalendarnow=javautilCalendarjavasqlTimestampoperationDate=newjavasqlTimestamp(nowgetTime()getTime())?userLogHomecreate(id,programName,operationContent,userName,operationDate)?}//publicvoidtestUserLogFindAll()Exception{Collectioncol=userLogHomefindAll()?thisassertEquals("",187,colsize())?}//測(cè)試根據(jù)操作程序名字取得日志publicvoidtestUserLogFindByProgramName()Exception{CollectioncoluserLogHomefindByProgramName("%登陸窗口%")?thisassertEquals("",106,colsize())?}//測(cè)試根據(jù)操作內(nèi)容取得日志記錄publicvoidtestUserLogFindByOperationContent()throwsException{Collectioncol=userLogHomefindByOperationContent("%刪除%")?thisassertEquals2col}//測(cè)試根據(jù)用戶名取得日志記錄的方publicvoidtestUserLogFindByUserName()throwspublicvoidtestUserLogFindByUserName()throwsException{Collectioncol=userLogHomefindByUserName("%ame%")?thisassertEquals("",23,col}//publicvoidtestUserLogFindByOperationDate()throws//javautilCalendardate=javautilCalendargetInstance()?dateset(2004,4,4,0,0,0)?javasqlTimestampstartDate=newjavasqlTimestamp(dategetTime()getTime())?dateset(2004,4,8,23,59,59)?javasqlTimestampendDate=newjavasqlTimestamp(dategetTime()getTime())?Collectioncol=userLogHomefindByOperationDate(startDate,endDate)?thisassertEquals("",69,col}Exception{Integerid=newInteger(1)?userLogremove()?}JBuilder重新編EJBEARWeblogic服務(wù)器的"DeployApplication”按鈕,重新部署stockmanagement.war和StockManagementEJB.jar文件。狀態(tài)EJB本節(jié)將介紹用戶登錄窗口程序相關(guān)的狀態(tài)EJB的創(chuàng)建與測(cè)試,狀態(tài)EJBpackageuser?1:publicclassUserimplementspackageuser?1:publicclassUserimplementsprivateStringuserName?privateStringuserPassword?privateintstockFunction?privateintsaleFunction?//用戶類(lèi)的構(gòu)造方publicUser(StringuserName,StringuserPassword,intintstockFunction,intstockManageFunction,int{thisuserName=userName?thisbaseInforFunction=baseInforFunction?thisstockFunction=stockFunction?thisstockManageFunction=stockManageFunction?thissaleFunction=saleFunction?}return11:因?yàn)樵诜?wù)端EJB之間傳送的類(lèi)需 }//取得用 的方publicString{return}//設(shè)置用 的方publicvoidsetUserPassword(String{thisuserPassword=}publicintgetBaseInforFunction(){return}//publicvoidsetBaseInforFunction(int{thisbaseInforFunction=}publicintgetStockFunction(){return}//publicvoidsetStockFunction(int{thisstockFunction=}return}//publicvoidsetStockManageFunction(int{thisstockManageFunction=}publicintgetSaleFunction(){return}//publicvoidsetSaleFunction(int{thissaleFunction=}}StoekManagementData狀態(tài)EJB的創(chuàng)建與測(cè)試步驟如下 是非會(huì)話狀態(tài)EJB。StockManagementDataBean是EJB的主文件,StockManagementDataHome是EJB的創(chuàng)建接口文件,StockManagementData是EJB的接口文件。為StockManagementData添加7個(gè)接口方法,分別是eheckUser、createUser、updateUser、deleteUser、getUserByUserName、~reateUserLog和deleteUserLog。packagepackageimportjavautil*?importjavarmi*?publicinterfaceStockManagementDataHomeextendsjavaxejbEJBHomepublicStockManagementDatacreate()throwsCreateException,}packagepackageimportjavautil*?importjavarmi*?importuser*?publicinterfaceStockManagementDataextendsjavaxejbEJBObjectpublicint[]checkUser(StringuserName,StringuserPassword)throwsRemoteException?publicintcreateUser(Useruser)throwsRemoteException?publicintupdateUser(Useruser)throwsRemoteException?publicintdeleteUser(Useruser)throwsRemoteException?publicString[][]getUserByUserName(StringuserName)throwspublicintcreateUserLog(StringprogramName,StringoperationContent,StringuserName)throwsRemoteException?publicintdeleteUserLog(Integerid)throwsRemoteException?}packagepackageimportjavaxejb*?importuser*?importjavautil*?importjavaxrmipublicclassStockManagementDataBeanimplements{SessionContextprivateUserTableHomeuserTableHome=null?privateUserTableuserTable=null?privateUserLoguserLog=null?//創(chuàng)建EJBpublicvoidejbCreate()throws{Contextcontext=newuserLogHome=(UserLogHome)contextlookup("UserLog")?}catch(Exception}}publicvoidejbRemove()}publicvoidejbActivate()}publicvoidejbPassivate()}publicvoidsetSessionContext(SessionContext{thissessionContext=}//publicint[]checkUser(StringuserName,StringuserPassword){int[]functions=newint[4]?//EJB的接//Stringname=userTable//if(nameequals(userName)&&passwordequals(userPassword)){functions[0]=userTablefunctions[1]=userTablegetStockFunction()?functions[3]=userTablegetSaleFunction()?}ex){functions[0]}}//創(chuàng)建用publicintcreateUser(User{intresult=0?usergetStockFunction(),usergetStockManageFunction(),usergetSaleFunction())?result=ex){ex}}//更新用publicintupdateUser(User{intresult=0?////userTablesetUserPassword(user//更新用戶權(quán)userTablesetStockFunction(usergetStockFunction())?userTablesetSaleFunction(usergetSaleFunction())?result=}catch(Exceptionex}}//刪除用publicintdeleteUser(User{intresult=0?//result=1?ex){ex}}//根據(jù)用戶名查詢(xún)用publicString[][]getUserByUserName(StringString[][]detail=null?//取得用戶的所有記Collectioncol=userTableHomefindByUserName("%"+userName+"%")?if(colsize()>0){Iteratoriterator=col//inti=0?////取 接userTable=(UserTable)PortableRemoteObjectnarrow(iteratornext(),UserTableclass)?detail[i][0]=userTablegetUserName()?detail[i][2]=StringvalueOf(userTablegetBaseInforFunction())?detail[i][3]=StringvalueOf(userTablegetStockFunction())?detail[i][5]=StringvalueOf(userTablegetSaleFunction())?}detail=new}ex){detail=newString[0][6]?ex}return}//publicintcreateUserLog(StringprogramName,StringoperationContent,String{intresult=0?//創(chuàng)建日期 javautilCalendarnow=javautilCalendargetInstance()?javasqlTimestampoperationDate=newjavasqlTimestamp(nowgetTime()getTime())?//Vector集合類(lèi)Integerid=null?if(colsize()>0)//narrow(vectorlasement(),UserLogclass)?//intnewInt=userLoggetId()intValue()+1?id=newInteger(newInt)?}elseid=newInteger(1)?}//userLogHomecreate(id,programName,operationContent,userName,operationDate)?result=1?ex){ex}}publicintdeleteUserLog(Integer{intresult=0?userLogremove()?result=ex){ex}packagepackageimportorgapachecactus*?importjavaxnaming*?importjavarmiRemoteException?importuserUser?publicclass actus1extends{privatestaticfinalStringERROR_NULL_REMOTE對(duì)象未定義"?privatestaticfinalintMAX_OUTPUT_LINE_LENGTH=100?privatebooleanlogging=false?privateStockManagementDataHomestockManagementDataHome=null?privateStockManagementDatastockManagementData=null?public actus1(String{}publicvoidinitialize()throws{Contextcontext=newObjectref=contextstockManagementDataHome=(StockManagementDataHome)PortableRemoteObjectnarrow(ref,StockManagementDataHomeclass)?}publicvoidsetUp()throws{supersetUp()?}publicvoidtearDown()throws{stockManagementDataHome=null?stockManagementData=null?super}//創(chuàng)建EJB 接publicStockManagementDatacreate()throws{stockManagementData=stockManagementDataHomecreate()?returnstockManagementData?}//測(cè)試檢查用戶的方publicvoidtestCheckUser()throwsRemoteExceptionStringuserPassword=//檢查用戶的方int[]functions=stockManagementDatacheckUser(userName,userPassword)?thisassertEquals("returnvalue",0,functions[0])?userName="jack1"?//檢查用戶的方functions=stockManagementDatacheckUser(userName,userPassword)?thisassertEquals("returnvalue",-1,functions[0])?}//測(cè)試創(chuàng)建用戶的方publicvoidtestCreateUser()throws{StringuserName="test"?intbaseInforFunction=0?intstockFunction=0?intstockManageFunction=0?intsaleFunction=0?Useruser=newUser(userName,userPassword,intresult=stockManagementDatacreateUser(user)?thisassertEquals("returnvalue",1,}//測(cè)試更新用戶的方publicvoidtestUpdateUser()throws{StringuserName="test"?intintbaseInforFunction=1?intstockFunction=1?intstockManageFunction=1?intsaleFunction=1?Useruser=newUser(userName,userPassword,intresult=stockManagementDataupdateUser(user)?thisassertEquals("returnvalue",1,}publicvoidtestDeleteUser()throws{StringuserName="test"?intbaseInforFunction=0?intstockFunction=0?intstockManageFunction=0?intsaleFunction=0?Useruser=newUser(userName,userPassword,intresult=stockManagementDatadeleteUser(user)?thisassertEquals("returnvalue",1,}//publicvoidtestGetUserByUserName()throws{StringuserName=thisassertEquals("returnvalue","jack",result[0][1])?}Exception{StringprogramName登陸窗口"?StringoperationContent="登陸"?StringuserName=//stockManagementDatacreateUserLog(programName,operationContent,}Exception{Integerid=new//stockManagementData}}JBuilder重新編譯EJB模板和EAR應(yīng)用程序,單擊Weblogic服務(wù)器的“DeployApplieation”按鈕重新部署EAR應(yīng)用程序。本節(jié)將介紹用戶登錄窗口程序相關(guān)的數(shù)據(jù)類(lèi)的創(chuàng)建與測(cè)試,數(shù)據(jù)類(lèi)的作用是非狀態(tài)EJB的方法和為窗口程packageimportjavaxnamingpackageimportjavaxnamingimportuser*?importjavautil*?publicclassStockManagementDataprivatestockmanagementproStockManagementDatastockManagementData=public{try{ex){ex}}//EJBpublicvoidinitialize()throwsException//Contextcontext=//EJBObjectref=context//取得StockManagementDataEJB的創(chuàng)建接stockManagementDataHome=(StockManagementDataHome)PortableRemoteOb
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 婚宴女方父母婚禮致辭(3篇)
- 長(zhǎng)城導(dǎo)游詞(35篇)
- 監(jiān)理資料員年度工作總結(jié)
- 領(lǐng)導(dǎo)力開(kāi)發(fā)心得體會(huì)
- 滿月酒慶典上的講話稿(35篇)
- 讀《三國(guó)演義》閱讀心得體會(huì)(32篇)
- 相交線與平行線(題型歸納)(原卷版+解析)
- 26.4 解直角三角形的應(yīng)用 同步練習(xí)
- 2024保育員(高級(jí))復(fù)審考試題庫(kù)(含答案)
- 云南省普洱市瀾滄拉祜族自治縣第一中學(xué)2024-2025學(xué)年高二上學(xué)期10月期中英語(yǔ)試題(含答案無(wú)聽(tīng)力原文及音頻)
- 農(nóng)貿(mào)市場(chǎng)索證索票制度(3篇)
- 小學(xué)英語(yǔ)人教新起點(diǎn)三年級(jí)上冊(cè)Revision頭腦特工隊(duì)
- 第三章-信用評(píng)級(jí)方法-《信用評(píng)級(jí)理論與實(shí)務(wù)》課件
- 部編版一年級(jí)語(yǔ)文上冊(cè)拼音8《zh-ch-sh-r》精美課件
- 初中數(shù)學(xué)人教七年級(jí)下冊(cè)第六章 實(shí)數(shù) 《實(shí)數(shù)》說(shuō)課PPT
- 三年級(jí)上冊(cè)數(shù)學(xué)教案-7.2噸的認(rèn)識(shí):感受并認(rèn)識(shí)質(zhì)量單位噸▎冀教
- 部編版《美麗的小興安嶺》第二課時(shí)(完美版)課件
- 《湘夫人》課件36張
- 混凝土建筑結(jié)構(gòu)設(shè)計(jì)顧祥林混凝土結(jié)構(gòu)設(shè)計(jì)概論
- 動(dòng)物疫病防治員(高級(jí))理論考試題庫(kù)大全-下(單選、判斷600題)
- 初中一年級(jí)學(xué)生家長(zhǎng)會(huì)課件
評(píng)論
0/150
提交評(píng)論