畢業(yè)設(shè)計(jì)(論文)-基于J2EE招標(biāo)信息管理系統(tǒng)的分析與設(shè)計(jì)_第1頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于J2EE招標(biāo)信息管理系統(tǒng)的分析與設(shè)計(jì)_第2頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于J2EE招標(biāo)信息管理系統(tǒng)的分析與設(shè)計(jì)_第3頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于J2EE招標(biāo)信息管理系統(tǒng)的分析與設(shè)計(jì)_第4頁(yè)
畢業(yè)設(shè)計(jì)(論文)-基于J2EE招標(biāo)信息管理系統(tǒng)的分析與設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGE.基于J2EE招標(biāo)信息管理系統(tǒng)的分析與設(shè)計(jì)摘要J2EE是一種利用Java2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的體系結(jié)構(gòu)。當(dāng)今許多企業(yè)都需要擴(kuò)展業(yè)務(wù)范圍,降低經(jīng)營(yíng)成本,縮短和客戶之間的響應(yīng)時(shí)間,這就需要存在一種簡(jiǎn)捷快速的服務(wù)在企業(yè),合作伙伴和雇員之間。提供這些服務(wù)的應(yīng)用軟件必須同企業(yè)信息系統(tǒng)(EIS)相結(jié)合,并提供新的能向更為廣闊的用戶提供的服務(wù)。本設(shè)計(jì)用JSP+JavaBean來(lái)實(shí)現(xiàn)招標(biāo)信息管理系統(tǒng),結(jié)構(gòu)上采用管理端與客戶端分離的方法來(lái)實(shí)現(xiàn),思想上采用面向?qū)ο髾C(jī)制,將項(xiàng)目、產(chǎn)品、廠商等封裝成數(shù)據(jù)類,并且每個(gè)類都有對(duì)應(yīng)的操作類;結(jié)構(gòu)上采用界面、業(yè)務(wù)邏輯和數(shù)據(jù)分離的三層結(jié)果設(shè)計(jì);數(shù)據(jù)庫(kù)連接上采用了連接池,以此來(lái)提高數(shù)據(jù)庫(kù)效率。關(guān)鍵詞:J2EE;JavaBean;JSP;數(shù)據(jù)庫(kù)連接池J2EEtenderinformationmanagementsystemanalysisanddesignABSTRACTJ2EEisakindofsystemframeworkwhichusingtheJava2platformstosimplifytheenterprisesolutionofthedevelopment,thedeploymentandthemanagement。Atpresent,therearemanyenterprisesallneedtoexpandthebusinessscope,toreducethecostofoperationandtheresponsetimewiththecustomer,thisneedstoexistonekindofsimpleandfastserviceintheenterprise,partnerandemployee.Internetsoftwarewhichcanprovidethoseservicemustcombinetotheenterpriseinformationsystem(EIS),andprovidesnewcapabilitywhichcanexpandtheuser.ThisdesignimplementthetenderinformationmanagementsystemwithJSP+JavaBean,inthestructure,whichusesthemethodtoseparatemanagementendandclientside;inthethought,whichusestheobject-orientedmechanism,ofwhichclassifytheproject,theproduct,merchanttodata,eachkindallhascorrespondingoperationclass;inthestructure,whichusestheinterface,businesslogicandthedataseparationthreelayerdesign;thedatabase–connectingusetheconnectionpondtoenhancethethedatabaseefficiency.Keywords:J2EE;JavaBean;JSP;databaseconnectionpond目錄TOC\o"2-3"\t"標(biāo)題1,1"第一章緒論 11.1引言 11.2課題背景 11.3J2EE的介紹 21.3.1J2EE的概念 21.3.2J2EE的四層模型 31.3.3J2EE的核心API與組件 4第二章系統(tǒng)概論 62.1系統(tǒng)概述 62.1.1系統(tǒng)功能與背景 62.2系統(tǒng)預(yù)覽 62.2.1系統(tǒng)特點(diǎn) 82.3系統(tǒng)設(shè)計(jì) 82.3.1系統(tǒng)設(shè)計(jì)思想 92.3.2系統(tǒng)功能模塊劃分 92.3.3系統(tǒng)結(jié)構(gòu)設(shè)計(jì) 102.4數(shù)據(jù)庫(kù)設(shè)計(jì) 112.4.1數(shù)據(jù)庫(kù)需求分析 112.4.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 122.4.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì) 142.4.4數(shù)據(jù)庫(kù)的生成與配置 17第三章JSP在招標(biāo)信息管理系統(tǒng)中的應(yīng)用 183.1JSP的介紹 183.2JSP在招標(biāo)信息管理系統(tǒng)中的應(yīng)用 183.2.1客戶端界面設(shè)計(jì) 183.2.2管理端界面設(shè)計(jì) 20第四章JavaBean在招標(biāo)信息管理系統(tǒng)中的應(yīng)用 234.1JavaBean的介紹 234.2JavaBean在招標(biāo)信息管理系統(tǒng)中的應(yīng)用 244.2.1項(xiàng)目數(shù)據(jù)Bean的編寫 244.2.2產(chǎn)品數(shù)據(jù)Bean的編寫 244.2.3廠商數(shù)據(jù)Bean的編寫 254.2.4類別數(shù)據(jù)Bean的編寫 264.2.5項(xiàng)目和產(chǎn)品類別關(guān)聯(lián)Bean的編寫 274.2.6項(xiàng)目、產(chǎn)品、廠商關(guān)聯(lián)Bean的編寫 274.2.7前臺(tái)管理廠商Bean的編寫 284.2.8后臺(tái)管理廠商Bean的編寫 294.2.9前臺(tái)管理項(xiàng)目Bean項(xiàng)目的編寫 304.2.10后臺(tái)管理項(xiàng)目Bean的編寫 304.2.11前臺(tái)搜索Bean的編寫 31第五章JDBC在招標(biāo)信息管理系統(tǒng)中的應(yīng)用 335.1JDBC的介紹 335.2JDBC在招標(biāo)信息管理系統(tǒng)中的應(yīng)用 34第六章結(jié)論 36參考文獻(xiàn) 37致謝 38附錄A開題報(bào)告附錄B外文資料原文附錄C外文資料譯文附錄D源程序代碼基于J2EE招標(biāo)信息管理系統(tǒng)的分析與設(shè)計(jì)第38頁(yè)共38頁(yè)第一章緒論1.1引言本設(shè)計(jì)用JSP+JavaBean來(lái)實(shí)現(xiàn)招標(biāo)信息管理系統(tǒng),結(jié)構(gòu)上采用管理端與客戶端分離的方法來(lái)實(shí)現(xiàn),技術(shù)上采用JSP+JavaBean+SQLServer2000來(lái)實(shí)現(xiàn)。本設(shè)計(jì)的亮點(diǎn)在于設(shè)計(jì)思想上采用面向?qū)ο髾C(jī)制,將項(xiàng)目、產(chǎn)品、廠商登封裝成數(shù)據(jù)類,并且每個(gè)類都有對(duì)應(yīng)的操作類;結(jié)構(gòu)上采用界面、業(yè)務(wù)邏輯和數(shù)據(jù)分離的三層結(jié)果設(shè)計(jì);數(shù)據(jù)庫(kù)連接上采用了連接池,以此來(lái)提高數(shù)據(jù)庫(kù)效率。1.2課題背景招標(biāo)系統(tǒng)是適應(yīng)社會(huì)發(fā)展而開發(fā)計(jì)算機(jī)軟件系統(tǒng),它為廣大建設(shè)單位以及招投標(biāo)代理機(jī)構(gòu),提供了一個(gè)完善的建設(shè)工程工程量清單招標(biāo)文件編制業(yè)務(wù)導(dǎo)向系統(tǒng)。能自動(dòng)生成符合清單投標(biāo)文件的標(biāo)準(zhǔn)格式;并且采用了先進(jìn)的.net技術(shù)、C/S的系統(tǒng)框架,能極為方便地通過(guò)INTERNET網(wǎng)絡(luò),將已編制的招標(biāo)文件快速地發(fā)送至相關(guān)單位,開展相應(yīng)的工作活動(dòng)。招標(biāo)向?qū)到y(tǒng)界面清晰,操作簡(jiǎn)便,整個(gè)應(yīng)用環(huán)節(jié)均有中文提示,使用者只須根據(jù)提示逐步操作,即能在很短的時(shí)間內(nèi)完成清單招標(biāo)文件編制的所有工作,從而大大縮短了工作時(shí)間,提高了整個(gè)業(yè)務(wù)開展的工作效率。并且利用系統(tǒng)特有的網(wǎng)絡(luò)通信技術(shù),幫助企業(yè)人員實(shí)現(xiàn)異地辦公,充分體現(xiàn)了信息化的方便快捷。(1)能夠降低招標(biāo)成本和招標(biāo)管理開支;(2)能夠促進(jìn)招標(biāo)系統(tǒng)的信息化建設(shè);(3)能夠加強(qiáng)對(duì)招標(biāo)的監(jiān)督力度;(4)能夠提高工作效率;(5)能為所有投標(biāo)單位參與投標(biāo)提供平等競(jìng)爭(zhēng)機(jī)會(huì);(6)能夠規(guī)范負(fù)責(zé)招標(biāo)人員的職業(yè)行為。總之,確立科技創(chuàng)新戰(zhàn)略,依靠科技創(chuàng)新建立我國(guó)獨(dú)立、先進(jìn)的技術(shù)體系,是我國(guó)招標(biāo)系統(tǒng)技術(shù)與產(chǎn)業(yè)發(fā)展的前提。1.3J2EE的介紹1.3.1J2EE的概念J2EE全稱為Java2Platform,EnterpriseEdition。J2EE平臺(tái)本質(zhì)上是一個(gè)分布式的服務(wù)器應(yīng)用程序設(shè)計(jì)環(huán)境——一個(gè)Java環(huán)境,它提供了宿主應(yīng)用的一個(gè)運(yùn)行基礎(chǔ)框架環(huán)境;提供了一套用來(lái)創(chuàng)建應(yīng)用的Java擴(kuò)展API。目前,Java2平臺(tái)有3個(gè)版本,它們是適用于小型設(shè)備和智能卡的Java2平臺(tái)Micro版(Java2PlatformMicroEdition,J2ME)、適用于桌面系統(tǒng)的Java2平臺(tái)標(biāo)準(zhǔn)版(Java2PlatformStandardEdition,J2SE)、適用于創(chuàng)建服務(wù)器應(yīng)用程序和服務(wù)的Java2平臺(tái)企業(yè)版(Java2PlatformEnterpriseEdition,J2EE)。J2EE是一種利用Java2平臺(tái)來(lái)簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問(wèn)題的體系結(jié)構(gòu)[1]。J2EE技術(shù)的基礎(chǔ)就是核心Java平臺(tái)或Java2平臺(tái)的標(biāo)準(zhǔn)版,J2EE不僅鞏固了標(biāo)準(zhǔn)版中的許多優(yōu)點(diǎn),例如"編寫一次、隨處運(yùn)行"的特性、方便存取數(shù)據(jù)庫(kù)的JDBCAPI、CORBA技術(shù)以及能夠在Internet應(yīng)用中保護(hù)數(shù)據(jù)的安全模式等等,同時(shí)還提供了對(duì)EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技術(shù)的全面支持。其最終目的就是成為一個(gè)能夠使企業(yè)開發(fā)者大幅縮短投放市場(chǎng)時(shí)間的體系結(jié)構(gòu)。J2EE體系結(jié)構(gòu)提供中間層集成框架用來(lái)滿足無(wú)需太多費(fèi)用而又需要高可用性、高可靠性以及可擴(kuò)展性的應(yīng)用的需求。通過(guò)提供統(tǒng)一的開發(fā)平臺(tái),J2EE降低了開發(fā)多層應(yīng)用的費(fèi)用和復(fù)雜性,同時(shí)提供對(duì)現(xiàn)有應(yīng)用程序集成強(qiáng)有力支持,完全支持EnterpriseJavaBeans,有良好的向?qū)еС执虬筒渴饝?yīng)用,添加目錄支持,增強(qiáng)了安全機(jī)制,提高了性能。J2EE為搭建具有可伸縮性、靈活性、易維護(hù)性的商務(wù)系統(tǒng)提供了良好的機(jī)制[2]。保留現(xiàn)存的IT資產(chǎn):由于企業(yè)必須適應(yīng)新的商業(yè)需求,利用已有的企業(yè)信息系統(tǒng)方面的投資,而不是重新制定全盤方案就變得很重要。這樣,一個(gè)以漸進(jìn)的(而不是激進(jìn)的,全盤否定的)方式建立在已有系統(tǒng)之上的服務(wù)器端平臺(tái)機(jī)制是公司所需求的。J2EE架構(gòu)可以充分利用用戶原有的投資,如一些公司使用的BEATuxedo、IBMCICS,IBMEncina,、InpriseVisiBroker以及NetscapeApplicationServer。這之所以成為可能是因?yàn)镴2EE擁有廣泛的業(yè)界支持和一些重要的“企業(yè)計(jì)算”領(lǐng)域供應(yīng)商的參與。每一個(gè)供應(yīng)商都對(duì)現(xiàn)有的客戶提供了不用廢棄已有投資,進(jìn)入可移植的J2EE領(lǐng)域的升級(jí)途徑。由于基于J2EE平臺(tái)的產(chǎn)品幾乎能夠在任何操作系統(tǒng)和硬件配置上運(yùn)行,現(xiàn)有的操作系統(tǒng)和硬件也能被保留使用。(1)高效的開發(fā):J2EE允許公司把一些通用的、很繁瑣的服務(wù)端任務(wù)交給中間件供應(yīng)商去完成。這樣開發(fā)人員可以集中精力在如何創(chuàng)建商業(yè)邏輯上,相應(yīng)地縮短了開發(fā)時(shí)間。高級(jí)中間件供應(yīng)商提供以下這些復(fù)雜的中間件服務(wù):(2)狀態(tài)管理服務(wù):讓開發(fā)人員寫更少的代碼,不用關(guān)心如何管理狀態(tài),這樣能夠更快地完成程序開發(fā)。(3)持續(xù)性服務(wù):讓開發(fā)人員不用對(duì)數(shù)據(jù)訪問(wèn)邏輯進(jìn)行編碼就能編寫應(yīng)用程序,能生成更輕巧,與數(shù)據(jù)庫(kù)無(wú)關(guān)的應(yīng)用程序,這種應(yīng)用程序更易于開發(fā)與維護(hù)。(4)分布式共享數(shù)據(jù)對(duì)象CACHE服務(wù):讓開發(fā)人員編制高性能的系統(tǒng),極大提高整體部署的伸縮性。(5)支持異構(gòu)環(huán)境:J2EE能夠開發(fā)部署在異構(gòu)環(huán)境中的可移植程序?;贘2EE的應(yīng)用程序不依賴任何特定操作系統(tǒng)、中間件、硬件。因此設(shè)計(jì)合理的基于J2EE的程序只需開發(fā)一次就可部署到各種平臺(tái)。這在典型的異構(gòu)企業(yè)計(jì)算環(huán)境中是十分關(guān)鍵的。J2EE標(biāo)準(zhǔn)也允許客戶訂購(gòu)與J2EE兼容的第三方的現(xiàn)成的組件,把他們部署到異構(gòu)環(huán)境中,節(jié)省了由自己制訂整個(gè)方案所需的費(fèi)用。(6)可伸縮性:企業(yè)必須要選擇一種服務(wù)器端平臺(tái),這種平臺(tái)應(yīng)能提供極佳的可伸縮性去滿足那些在他們系統(tǒng)上進(jìn)行商業(yè)運(yùn)作的大批新客戶。基于J2EE平臺(tái)的應(yīng)用程序可被部署到各種操作系統(tǒng)上。例如可被部署到高端UNIX與大型機(jī)系統(tǒng),這種系統(tǒng)單機(jī)可支持64至256個(gè)處理器(這是NT服務(wù)器所望塵莫及的)。J2EE領(lǐng)域的供應(yīng)商提供了更為廣泛的負(fù)載平衡策略,能消除系統(tǒng)中的瓶頸,允許多臺(tái)服務(wù)器集成部署。這種部署可達(dá)數(shù)千個(gè)處理器,實(shí)現(xiàn)可高度伸縮的系統(tǒng),滿足未來(lái)商業(yè)應(yīng)用的需要。(7)穩(wěn)定的可用性:一個(gè)服務(wù)器端平臺(tái)必須能全天候運(yùn)轉(zhuǎn)以滿足公司客戶、合作伙伴的需要。因?yàn)镮NTERNET是全球化的、無(wú)處不在的,即使在夜間按計(jì)劃停機(jī)也可能造成嚴(yán)重?fù)p失。若是意外停機(jī),那會(huì)有災(zāi)難性后果。J2EE部署到可靠的操作環(huán)境中,他們支持長(zhǎng)期的可用性。一些J2EE部署在WINDOWS環(huán)境中,客戶也可選擇健壯性能更好的操作系統(tǒng)如SunSolaris、IBMOS/390。最健壯的操作系統(tǒng)可達(dá)到99.999%的可用性或每年只需5分鐘停機(jī)時(shí)間。這是實(shí)時(shí)性很強(qiáng)商業(yè)系統(tǒng)理想的選擇。1.3.2J2EE的四層模型J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個(gè)應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。事實(shí)上,sun設(shè)計(jì)J2EE的初衷正是為了解決兩層模式(client/server)的弊端,在傳統(tǒng)模式中,客戶端擔(dān)當(dāng)了過(guò)多的角色而顯得臃腫,在這種模式中,第一次部署的時(shí)候比較容易,但難于升級(jí)或改進(jìn),可伸展性也不理想,而且經(jīng)?;谀撤N專有的協(xié)議――通常是某種數(shù)據(jù)庫(kù)協(xié)議。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難?,F(xiàn)在J2EE的多層企業(yè)級(jí)應(yīng)用模型將兩層化模型中的不同層面切分成許多層。一個(gè)多層化應(yīng)用能夠?yàn)椴煌拿糠N服務(wù)提供一個(gè)獨(dú)立的層,以下是J2EE典型的四層結(jié)構(gòu):(1)運(yùn)行在客戶端機(jī)器上的客戶層組件(2)運(yùn)行在J2EE服務(wù)器上的Web層組件(3)運(yùn)行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件(4)運(yùn)行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterpriseinformationsystem)層軟件1.3.3J2EE的核心API與組件J2EE平臺(tái)由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對(duì)開發(fā)基于Web的多層應(yīng)用提供了功能支持,下面對(duì)J2EE中的13種技術(shù)規(guī)范進(jìn)行簡(jiǎn)單的描述:(1)JDBC(JavaDatabaseConnectivity):JDBCAPI為訪問(wèn)不同的數(shù)據(jù)庫(kù)提供了一種統(tǒng)一的途徑,象ODBC一樣,JDBC對(duì)開發(fā)者屏蔽了一些細(xì)節(jié)問(wèn)題。另外,JDCB對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)也具有平臺(tái)無(wú)關(guān)性。(2)JNDI(JavaNameandDirectoryInterface):JNDIAPI被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來(lái)存取和操作企業(yè)級(jí)的資源如DNS和LDAP、本地文件系統(tǒng)或應(yīng)用服務(wù)器中的對(duì)象。(3)EJB(EnterpriseJavaBean):J2EE技術(shù)之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個(gè)框架來(lái)開發(fā)和實(shí)施分布式商務(wù)邏輯,由此很顯著地簡(jiǎn)化了具有可伸縮性和高度復(fù)雜的企業(yè)級(jí)應(yīng)用的開發(fā)。EJB規(guī)范定義了EJB組件在何時(shí)如何與它們的容器進(jìn)行交互作用。容器負(fù)責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖池以及容錯(cuò)性。但這里值得注意的是,EJB并不是實(shí)現(xiàn)J2EE的唯一途徑。正是由于J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來(lái)達(dá)到同樣的目的。(4)RMI(RemoteMethodInvoke):正如其名字所表示的那樣,RMI協(xié)議調(diào)用遠(yuǎn)程對(duì)象上方法。它使用了序列化方式在客戶端和服務(wù)器端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更底層的協(xié)議。(5)JavaIDL/CORBA:在JavaIDL的支持下,開發(fā)人員可以將Java和CORBA集成在一起。他們可以創(chuàng)建Java對(duì)象并使之可在CORBAORB中展開,或者他們還可以創(chuàng)建Java類并作為和其它ORB一起展開的CORBA對(duì)象的客戶。后一種方法提供了另外一種途徑,通過(guò)它Java可以被用于將你的新的應(yīng)用和舊的系統(tǒng)相集成。(6)JSP(JavaServerPages):JSP頁(yè)面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁(yè)面被客戶端所請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。(7)JavaServlet:Servlet是一種小型的Java程序,它擴(kuò)展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當(dāng)被請(qǐng)求時(shí)開始執(zhí)行,這和CGIPerl腳本很相似。Servlet提供的功能大多與JSP類似,不過(guò)實(shí)現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成并且生成HTML。(8)XML(ExtensibleMarkupLanguage):XML是一種可以用來(lái)定義其它標(biāo)記語(yǔ)言的語(yǔ)言。它被用來(lái)在不同的商務(wù)過(guò)程中共享數(shù)據(jù)。XML的發(fā)展和Java是相互獨(dú)立的,但是,它和Java具有的相同目標(biāo)正是平臺(tái)獨(dú)立性。通過(guò)將Java和XML的組合,可以得到一個(gè)完美的具有平臺(tái)獨(dú)立性的解決方案。(9)JMS(JavaMessageService):MS是用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點(diǎn)對(duì)點(diǎn)的域,有支持發(fā)布/訂閱(publish/subscribe)類型的域,并且提供對(duì)下列類型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來(lái)對(duì)您的應(yīng)用與舊的后臺(tái)系統(tǒng)相集成。(10)JTA(JavaTransactionArchitecture):JTA定義了一種標(biāo)準(zhǔn)的API,應(yīng)用系統(tǒng)由此可以訪問(wèn)各種事務(wù)監(jiān)控。(11)JTS(JavaTransactionService):JTS是CORBAOTS事務(wù)監(jiān)控的基本的實(shí)現(xiàn)。JTS規(guī)定了事務(wù)管理器的實(shí)現(xiàn)方式。該事務(wù)管理器是在高層支持JavaTransactionAPI(JTA)規(guī)范,并且在較底層實(shí)現(xiàn)OMGOTSspecification的Java映像。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨(dú)立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。(12)JavaMail:JavaMail是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器。(13)JTA(JavaBeansActivationFramework):JavaMail利用JAF來(lái)處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對(duì)象。第二章系統(tǒng)概論2.1系統(tǒng)概述2.1.1系統(tǒng)功能與背景本設(shè)計(jì)的功能主要是對(duì)項(xiàng)目、廠商、產(chǎn)品信息的保存、查閱、修改與刪除。由于本系統(tǒng)主要是針對(duì)這些信息而設(shè)計(jì)的,所以功能主要集中在信息的閱讀與操作方面??梢酝ㄟ^(guò)本系統(tǒng)方便及時(shí)地查閱到相關(guān)信息。具體途徑有兩種:一種是通過(guò)搜索引擎直接輸入關(guān)鍵字,系統(tǒng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行查找并返回查找結(jié)果;另一種是用戶直接在信息頁(yè)面逐級(jí)搜索瀏覽[4]。本系統(tǒng)中主要完成的功能如下:(1)客戶界面部分:產(chǎn)品信息查詢。廠商信息查詢。項(xiàng)目信息查詢。綜合查詢。(2)管理界面部分:項(xiàng)目管理。廠商管理。2.2系統(tǒng)預(yù)覽如圖2.1所示為客戶端的產(chǎn)品信息、廠商信息、項(xiàng)目信息的查詢界面。從圖中可以看出,客戶可以對(duì)具體的某個(gè)產(chǎn)品。項(xiàng)目或廠商信息進(jìn)行查詢,也可以進(jìn)行綜合查詢,實(shí)現(xiàn)客戶對(duì)信息的全方位了解和掌握[5]。圖2.1客戶界面部分的信息查詢界面如圖2.2所示為管理端的項(xiàng)目管理界面。從圖中可以看出,管理員可以增加、刪除項(xiàng)目,單擊某個(gè)具體的項(xiàng)目,可以對(duì)此項(xiàng)目信息進(jìn)行修改。圖2.2管理端的項(xiàng)目管理界面如圖2.3所示是管理端的添加項(xiàng)目信息界面。從圖中可以看出,管理員添加項(xiàng)目信息時(shí)涉及的內(nèi)容有項(xiàng)目名稱、項(xiàng)目時(shí)間、項(xiàng)目負(fù)責(zé)單位、項(xiàng)目總造價(jià)和項(xiàng)目說(shuō)明等。圖2.3管理端的項(xiàng)目信息添加界面2.2.1系統(tǒng)特點(diǎn)這個(gè)設(shè)計(jì)具有以下特點(diǎn):(1)功能模塊化:通過(guò)對(duì)功能的劃分,將龐大的系統(tǒng)功能進(jìn)行了分解、簡(jiǎn)化,并將它們整理成不同的模塊,這樣極大地提高了系統(tǒng)的開發(fā)效率,增加了代碼的可重用性(2)三層結(jié)構(gòu)設(shè)計(jì):本系統(tǒng)采用三層結(jié)構(gòu)設(shè)計(jì),即程序邏輯結(jié)構(gòu)氛圍用戶界面層、業(yè)務(wù)邏輯處理層和數(shù)據(jù)存儲(chǔ)層。三層在實(shí)際的物理結(jié)構(gòu)上也是獨(dú)立的,業(yè)務(wù)邏輯處理層采用JavaBeans實(shí)現(xiàn),用戶界面與業(yè)務(wù)邏輯分離,系統(tǒng)的安全性、可維護(hù)性、重用性和擴(kuò)展性都大大提高。(3)面向?qū)ο笤O(shè)計(jì):系統(tǒng)中將項(xiàng)目、產(chǎn)品、類別、廠商等信息都封裝成相應(yīng)的類,同時(shí)每個(gè)類都有自己對(duì)應(yīng)的操作類,從而增加了本設(shè)計(jì)的安全性和邏輯上的可擴(kuò)展性[6]。2.3系統(tǒng)設(shè)計(jì)下面著重從系統(tǒng)設(shè)計(jì)思想角度出發(fā),介紹系統(tǒng)的功能模塊劃分和結(jié)構(gòu)設(shè)計(jì)。2.3.1系統(tǒng)設(shè)計(jì)思想(1)管理端與客戶端分離,使功能更加清晰本設(shè)計(jì)把系統(tǒng)中的功能進(jìn)行了劃分,將功能劃分為客戶端與管理端兩部分[7],這樣劃分的好處是思路比較清晰,便于開發(fā)。(2)三層結(jié)構(gòu)架構(gòu)采用三層架構(gòu)設(shè)計(jì),工作原理圖如圖2.4所示。用戶界面層業(yè)務(wù)邏輯層數(shù)據(jù)存儲(chǔ)層用戶界面層業(yè)務(wù)邏輯層數(shù)據(jù)存儲(chǔ)層增加、刪除、查詢修改產(chǎn)品、廠商、使用SQL語(yǔ)句查類別和項(xiàng)目信息詢數(shù)據(jù)庫(kù)返回操作信息返回查詢結(jié)果招標(biāo)信息系統(tǒng)界面JavaBean數(shù)據(jù)庫(kù)圖2.4三層架構(gòu)的工作原理圖采用三層架構(gòu)以后,用戶界面層通過(guò)統(tǒng)一的接口向業(yè)務(wù)邏輯層發(fā)送請(qǐng)求,業(yè)務(wù)邏輯層按自己的邏輯規(guī)則將請(qǐng)求處理之后進(jìn)行數(shù)據(jù)庫(kù)操作,然后將數(shù)據(jù)庫(kù)返回的數(shù)據(jù)封裝成類的形式返回給用戶界面層。這樣用戶界面層只和中間業(yè)務(wù)邏輯層進(jìn)行交互,不用直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,它只要維護(hù)與中間業(yè)務(wù)邏輯層之間的接口即可。這種方式在一定程度上增加了數(shù)據(jù)庫(kù)的安全性及程序的可維護(hù)性。同時(shí)也降低了對(duì)用戶界面層開發(fā)人員的要求。2.3.2系統(tǒng)功能模塊劃分根據(jù)系統(tǒng)功能分析,可以畫出系統(tǒng)的功能模塊圖。本設(shè)計(jì)從客戶端、管理端分別對(duì)功能模塊圖加以描述。客戶界面的系統(tǒng)功能模塊圖如圖2.5所示??蛻舻顷懣蛻舻顷懺诰€查詢產(chǎn)品信息查詢廠商信息查詢項(xiàng)目信息查詢綜合信息查詢類別信息查詢查詢產(chǎn)品信息廠商詳細(xì)信息項(xiàng)目詳細(xì)信息項(xiàng)目基本信息廠商基本信息查詢項(xiàng)目信息查詢項(xiàng)目信息產(chǎn)品詳細(xì)信息類別產(chǎn)品查詢圖2.5客戶界面的功能模塊圖管理界面的功能模塊圖如圖2.6所示。項(xiàng)目詳細(xì)信息項(xiàng)目詳細(xì)信息廠商詳細(xì)信息增加、刪除、修改、廠商產(chǎn)品增加、刪除、修改、廠商信息所有廠商列表增刪改類別信息增加、刪除、修改項(xiàng)目信息所有項(xiàng)目列表項(xiàng)目管理廠商管理管理員登陸信息管理圖2.6管理界面的功能模塊圖2.3.3系統(tǒng)結(jié)構(gòu)設(shè)計(jì)根據(jù)面向?qū)ο蠛腿龑咏Y(jié)構(gòu)的設(shè)計(jì)思想,可得出如圖2.7所示的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖。招標(biāo)管理系統(tǒng)招標(biāo)管理系統(tǒng)客戶端部分管理端部分JavaBean部分?jǐn)?shù)據(jù)庫(kù)部分產(chǎn)品操作類報(bào)價(jià)操作類類別操作類廠商操作類項(xiàng)目操作類項(xiàng)目產(chǎn)品類項(xiàng)目數(shù)據(jù)類報(bào)價(jià)數(shù)據(jù)類類別數(shù)據(jù)類產(chǎn)品數(shù)據(jù)類廠商數(shù)據(jù)類項(xiàng)目產(chǎn)品廠商類連接池管理類連接池類廠商管理項(xiàng)目管理綜合信息查詢產(chǎn)品信息廠商信息查詢項(xiàng)目信息查詢連接池?cái)?shù)據(jù)類數(shù)據(jù)操作類圖2.7系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖2.4數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)在一個(gè)信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞將直接對(duì)應(yīng)用系統(tǒng)的效率,以及實(shí)現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)可以提高數(shù)據(jù)存儲(chǔ)的效率,保證數(shù)據(jù)的完整和一致。設(shè)計(jì)數(shù)據(jù)庫(kù)系統(tǒng)時(shí)應(yīng)該首先充分了解用戶各個(gè)方面的需求,包括現(xiàn)有的及將來(lái)可能增加的需求。數(shù)據(jù)庫(kù)設(shè)計(jì)一般包括如下幾個(gè)步驟:(1)數(shù)據(jù)庫(kù)需求分析。(2)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。(3)數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)。2.4.1數(shù)據(jù)庫(kù)需求分析用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢,這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)能充分滿足各種信息的輸出和輸入[8]。收集基本數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu),以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計(jì)打下基礎(chǔ)。通過(guò)上述系統(tǒng)功能分析,針對(duì)本系統(tǒng)的需求,總結(jié)出如下的需求信息:(1)本系統(tǒng)主要包括項(xiàng)目管理、產(chǎn)品管理、廠商管理。(2)項(xiàng)目中的投標(biāo)設(shè)備基本都要分類,每一類包括一些產(chǎn)品。(3)每個(gè)廠商都生產(chǎn)自己的產(chǎn)品,通過(guò)這些產(chǎn)品來(lái)參與某個(gè)項(xiàng)目的招標(biāo)。一個(gè)廠商可以生產(chǎn)多個(gè)產(chǎn)品,甚至可以是多類產(chǎn)品。每個(gè)產(chǎn)品在招標(biāo)時(shí)都要給出報(bào)價(jià)單。(4)每個(gè)產(chǎn)品都對(duì)應(yīng)著一個(gè)產(chǎn)品類別,一個(gè)類別可以有多個(gè)產(chǎn)品。一個(gè)報(bào)價(jià)單對(duì)應(yīng)著一個(gè)或者多個(gè)產(chǎn)品,一個(gè)產(chǎn)品對(duì)應(yīng)著一個(gè)或多個(gè)報(bào)價(jià)單。(5)每個(gè)項(xiàng)目的招標(biāo)設(shè)備有一個(gè)或多個(gè)產(chǎn)品類別,一個(gè)類別可以對(duì)應(yīng)多個(gè)項(xiàng)目。經(jīng)過(guò)上述系統(tǒng)功能分析和需求總結(jié),考慮到將來(lái)功能上的擴(kuò)展,設(shè)計(jì)的數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu):項(xiàng)目信息,數(shù)據(jù)項(xiàng)包括項(xiàng)目名稱、項(xiàng)目時(shí)間、項(xiàng)目總造價(jià)、項(xiàng)目負(fù)責(zé)單位、項(xiàng)目?jī)?nèi)容說(shuō)明等。(6)設(shè)備類別信息,數(shù)據(jù)項(xiàng)包括類別名稱和類別說(shuō)明。(7)廠商信息,數(shù)據(jù)項(xiàng)包括廠商名稱、總部地址、注冊(cè)建立時(shí)間、注冊(cè)地址、注冊(cè)資金、法人姓名、法人職務(wù)、企業(yè)性質(zhì)、分支機(jī)構(gòu)分公司分廠辦事處、制造商在中國(guó)辦事處或代理商代表的資料。(8)產(chǎn)品信息,數(shù)據(jù)項(xiàng)包括產(chǎn)品名稱、所屬?gòu)S商ID、所屬類別ID、產(chǎn)品說(shuō)明。報(bào)價(jià)單信息,數(shù)據(jù)項(xiàng)包括設(shè)備總價(jià)、備件和特殊工具總價(jià)、技術(shù)服務(wù)總價(jià)、選項(xiàng)件總價(jià)、配套工程費(fèi)、國(guó)內(nèi)投標(biāo)商投標(biāo)總價(jià)、投標(biāo)保證金、交貨期等信息。2.4.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)根據(jù)對(duì)上面的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)項(xiàng)進(jìn)行分析之后,就可以得到用戶所需要的各種實(shí)體,以及實(shí)體之間的關(guān)系,這為數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)打下了基礎(chǔ)。這些實(shí)體包含各種具體信息,通過(guò)相互之間的作用形成數(shù)據(jù)的流動(dòng)。規(guī)劃出的實(shí)體有:管理員信息實(shí)體、普通用戶信息實(shí)體、項(xiàng)目信息實(shí)體、設(shè)備類別信息實(shí)體、廠商信息實(shí)體、產(chǎn)品信息實(shí)體、報(bào)價(jià)單信息實(shí)體。實(shí)體之間關(guān)系的E-R圖如圖2.8所示。m:nm:n1:m1:m項(xiàng)目廠商報(bào)價(jià)單產(chǎn)品分類信息操作圖2.8實(shí)體之間關(guān)系的E-R圖項(xiàng)目實(shí)體的E-R圖如圖2.9所示。項(xiàng)項(xiàng)目項(xiàng)目名稱項(xiàng)目負(fù)責(zé)單位項(xiàng)目?jī)?nèi)容項(xiàng)目時(shí)間圖2.9項(xiàng)目實(shí)體的E-R圖設(shè)備類別實(shí)體的E-R圖如圖2.10所示。設(shè)備類別設(shè)備類別類別ID類別名稱類別說(shuō)明圖2.10設(shè)備類別實(shí)體的E-R圖廠商實(shí)體的E-R圖如圖2.11所示。廠商廠商產(chǎn)品ID產(chǎn)品廠商產(chǎn)品名稱產(chǎn)品類別圖2.11廠商實(shí)體的E-R圖產(chǎn)品實(shí)體的E-R圖如圖2.12所示。產(chǎn)品產(chǎn)品產(chǎn)品ID產(chǎn)品廠商產(chǎn)品類別產(chǎn)品名稱圖2.12產(chǎn)品實(shí)體的E-R圖報(bào)價(jià)單實(shí)體的E-R圖如圖2.13所示。產(chǎn)品產(chǎn)品產(chǎn)品廠商產(chǎn)品ID產(chǎn)品名稱產(chǎn)品類別圖2.13報(bào)價(jià)單實(shí)體的E-R圖2.4.3數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)的概念結(jié)構(gòu)設(shè)計(jì)完畢后,現(xiàn)在可以將上面的數(shù)據(jù)庫(kù)概念結(jié)構(gòu)轉(zhuǎn)化為某種數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)。根據(jù)招標(biāo)信息管理系統(tǒng)使用情況的不同,可以采用MySQL數(shù)據(jù)庫(kù)或Oracle數(shù)據(jù)庫(kù)。本設(shè)計(jì)采用SQLServer2000數(shù)據(jù)庫(kù)。如表2-1所示為項(xiàng)目信息列表,記錄項(xiàng)目信息。表2-1項(xiàng)目(project)信息列表FiledTypeNullKeyDefaultExtraCommentproject_idnumericNotNULLprimary無(wú)auto_increment主鍵,遞增project_namevarcharNULL-無(wú)-項(xiàng)目名稱Project_timevarcharNULL-無(wú)-項(xiàng)目時(shí)間project_companyvarcharNULL-無(wú)-所屬公司project_costvarcharNULL-無(wú)-項(xiàng)目投資project_varcharvarcharNULL-無(wú)-項(xiàng)目具體內(nèi)容如表2-2所示為設(shè)備類別信息列表,記錄設(shè)備類別信息。表2-2設(shè)備類別(type)信息列表FieldTypeNullKeyDefaultExtraCommentTypeNumericNotNULLprimary無(wú)auto_increment主鍵,遞增TypeVarcharNotNULL-無(wú)-類別名稱Type_contentVarcharnull-無(wú)-類別說(shuō)明如表2-3所示為項(xiàng)目產(chǎn)品表。表2-3項(xiàng)目產(chǎn)品(project_product)表FieldTypeNullKeyDefaultExtraCommentProject_idNumericNotNULLprimary無(wú)-項(xiàng)目IDType_idNumericNotNULL-無(wú)-類別ID如表2-4所示為廠商標(biāo)價(jià)表,記錄廠商產(chǎn)品的報(bào)價(jià)信息。表2-4廠商標(biāo)價(jià)(price)表FieldTypeNullKeyDefaultExtraCommentprice_idNumericnullprimary無(wú)-設(shè)備總價(jià)devide_priceVarcharnull-無(wú)-備件和特殊工具總價(jià)tool_priceNumericnull-無(wú)-技術(shù)服務(wù)總價(jià)續(xù)表2-4FieldTypeNullKeyDefaultExtraCommentoptional_priceVarcharnull-無(wú)-選項(xiàng)件總價(jià)RePro_priceVarcharnull-無(wú)-配套工程費(fèi)inter_priceVarcharnull-無(wú)-國(guó)內(nèi)投標(biāo)商投標(biāo)總價(jià)ensure_priceVarcharnull-無(wú)-投標(biāo)保證金deliver_timeVarcharnull-無(wú)-交貨期如表2-5所示為產(chǎn)品信息表,記錄產(chǎn)品的具體信息。表2-5廠商信息(maker)表FieldTypeNullKeyDefaultExtraCommentMaker_idnumericNotnullprimary無(wú)-廠商IDMaker_namevarcharNull-無(wú)-廠商名稱Maker_addressVarcharNull-無(wú)-總部地址Maker_Cr_timeVarcharNull-無(wú)-注冊(cè)建立時(shí)間Maker_Cr_addressVarcharNull-無(wú)-注冊(cè)地址Maker_Cr_costfloatNull-無(wú)-注冊(cè)資金Maker_fr_nameVarcharNull-無(wú)-法人姓名Maker_fr_positionVarcharNull-無(wú)-法人職務(wù)Maker_AttributeVarcharNull-無(wú)-企業(yè)性質(zhì)Maker_relationVarcharNull-無(wú)-分支機(jī)構(gòu)、分公司、分廠辦事處聯(lián)絡(luò)表Maker_Db_contentVarcharNull-無(wú)-制造商在中國(guó)辦事處或代理商代表的資料如表2-6所示為項(xiàng)目、產(chǎn)品、廠商信息表,記錄廠商在項(xiàng)目中關(guān)于某些設(shè)備的投標(biāo)信息。表2-6項(xiàng)目、產(chǎn)品、廠商信息(ppm)表FieldTypeNullKeyDefaultExtraCommentidNumericNotnullprimary無(wú)一個(gè)廠商對(duì)一種產(chǎn)品的一次投標(biāo)續(xù)表2-6FieldTypeNullKeyDefaultExtraCommentProject_idNumericNotnull-無(wú)-項(xiàng)目idProduct_idNumericNotnull-無(wú)-產(chǎn)品idMaker_idNumericNotnull-無(wú)-廠商idZhongbiaoIntNotnull-無(wú)――是否中標(biāo)Price_idNumericNotnull-無(wú)標(biāo)價(jià)_id2.4.4數(shù)據(jù)庫(kù)的生成與配置經(jīng)過(guò)前面的需求分析和數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)后,得到了數(shù)據(jù)庫(kù)的邏輯結(jié)構(gòu)?,F(xiàn)在就可以在SQLServer中創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表了。第三章JSP在招標(biāo)信息管理系統(tǒng)中的應(yīng)用3.1JSP的介紹JSP(JavaServerPages)是SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP就是包含用Java語(yǔ)言編寫的網(wǎng)頁(yè),Java是一種完整的程序設(shè)計(jì)語(yǔ)言,功能要比JavaScript強(qiáng)大得多,可用于網(wǎng)頁(yè)編程、手機(jī)編程等等,要先編譯、后執(zhí)行。JSP在HTML代碼中,插入JSP標(biāo)記(tag)及Java程序片段(Scriptlet),構(gòu)成JSP頁(yè)面,其擴(kuò)展名為.jsp。當(dāng)客戶端請(qǐng)求JSP文件時(shí),Web服務(wù)器執(zhí)行該JSP文件,然后以HTML的格式返回給客戶。JSP只是構(gòu)建在Servlet之上的高層次的動(dòng)態(tài)網(wǎng)頁(yè)標(biāo)準(zhǔn),因此,從概念上將,相對(duì)Servlet而言,JSP并沒(méi)有什么新的東西,只不過(guò)在實(shí)現(xiàn)方法上稍有不同。JSP技術(shù)為創(chuàng)建顯示動(dòng)態(tài)生成內(nèi)容的Web頁(yè)面提供了一個(gè)簡(jiǎn)捷而快速的方法。設(shè)計(jì)目的是使得構(gòu)造基于Web的應(yīng)用程序更加容易和快捷,而這些應(yīng)用程序能夠與各種Web服務(wù)器,應(yīng)用服務(wù)器,瀏覽器和開發(fā)工具共同工作。JSP規(guī)范是Web服務(wù)器、應(yīng)用服務(wù)器、交易系統(tǒng)、以及開發(fā)工具供應(yīng)商間廣泛合作的結(jié)果。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(yè)(*.jsp)。Web服務(wù)器在遇到訪問(wèn)JSP網(wǎng)頁(yè)的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送email等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無(wú)Plugin,無(wú)ActiveX,無(wú)JavaApplet,甚至無(wú)Frame。3.2JSP在招標(biāo)信息管理系統(tǒng)中的應(yīng)用為了提高代碼的重要性,把客戶界面根據(jù)功能劃分將頁(yè)面進(jìn)行統(tǒng)一的部署,分為管理端和客戶端兩個(gè)部分。3.2.1客戶端界面設(shè)計(jì)(1)客戶端主頁(yè)面設(shè)計(jì)圖3.1所示為客戶端的主頁(yè)面運(yùn)行后的效果。圖3.1客戶端主頁(yè)面(2)客戶端查詢頁(yè)面設(shè)計(jì)由于客戶的查詢功能需要完成查詢廠商、項(xiàng)目、產(chǎn)品和綜合查詢等功能,因此查詢功能用了多個(gè)JSP頁(yè)面來(lái)設(shè)計(jì),分為廠商查詢、項(xiàng)目查詢和綜合查詢等[9]。在頁(yè)面上輸入用戶的查詢信息,頁(yè)面返回根據(jù)用戶輸入的查詢條件而獲得的信息。圖3.2客戶端頁(yè)面查詢功能圖3.2.2管理端界面設(shè)計(jì)根據(jù)管理端的功能,將頁(yè)面設(shè)計(jì)分為主頁(yè)面部分、項(xiàng)目管理與廠商管理三個(gè)部分。(1)主頁(yè)面用戶進(jìn)入管理端后,需要對(duì)一些項(xiàng)目、廠商、產(chǎn)品、類別等信息進(jìn)行管理,管理端主頁(yè)面的效果圖如3.3圖所示。圖3.3管理端主頁(yè)面的效果圖(2)項(xiàng)目管理在項(xiàng)目管理模塊中有多項(xiàng)管理功能,具體包括增加項(xiàng)目信息、刪除項(xiàng)目信息、查詢項(xiàng)目信息、修改項(xiàng)目信息、增加類別信息、刪除類別信息、查詢類別信息、修改類別信息等。由多個(gè)JSP文件實(shí)現(xiàn)。項(xiàng)目管理主頁(yè)面如圖3.4所示圖3.4管理端項(xiàng)目管理主頁(yè)面效果圖(3)廠商管理管理端對(duì)廠商信息進(jìn)行管理的功能主要包括增加廠商信息、刪除廠商信息、查詢廠商信息和修改廠商信息、增加產(chǎn)品信息、刪除產(chǎn)品信息、查詢產(chǎn)品信息與修改產(chǎn)品信息等。由多個(gè)JSP文件實(shí)現(xiàn)。廠商管理主頁(yè)面如圖3.5所示圖3.5管理端廠商管理主頁(yè)面效果圖添加廠商頁(yè)面如3.6圖所示圖3.6廠商管理主頁(yè)面效果第四章JavaBean在招標(biāo)信息管理系統(tǒng)中的應(yīng)用4.1JavaBean的介紹JavaBeans是SUN公司為Intenet應(yīng)用進(jìn)行分布式計(jì)算的組件結(jié)構(gòu)口。SUN公司將其定義為:一個(gè)可復(fù)用的部件,這個(gè)部件可用來(lái)生成其進(jìn)行可視化處理的部件。JavaBean是一種基于Java的軟件組件。JSP對(duì)于在Web應(yīng)用中集成JavaBean組件提供了完善的支持。這種支持不僅能縮短開發(fā)時(shí)間(可以直接利用經(jīng)測(cè)試和可信任的已有組件,避免了重復(fù)開發(fā)),也為JSP應(yīng)用帶來(lái)了更多的可伸縮性。JavaBean組件可以用來(lái)執(zhí)行復(fù)雜的計(jì)算任務(wù),或負(fù)責(zé)與數(shù)據(jù)庫(kù)的交互以及數(shù)據(jù)提取等。它的特性有:(1)代碼重用:一個(gè)JavaBeans是一個(gè)有某種功能的組件,其它組件要用到此功能時(shí),只要import后即可生成對(duì)象使用此功能。(2)易維護(hù)、易使用、易編寫:如果應(yīng)用系統(tǒng)非常簡(jiǎn)單、工作量也不大,可以不用JavaBeans,直接把JAVA代碼放在JSP網(wǎng)頁(yè)中。但如果應(yīng)用較為復(fù)雜、龐大時(shí),使用JavaBeans可以充分利用組件的可重復(fù)使用的特性并增加程序的可讀性。遵守這樣的規(guī)范帶來(lái)的是開發(fā)和維護(hù)中的便利,這是值得的。(3)可跨平臺(tái)工作:編譯好后的JavaBeans組件(*.jar、*.class),可復(fù)制到Unix、windows下直接使用,而不用重新編譯。(4)可在網(wǎng)絡(luò)間傳輸。(5)可以和其它組件協(xié)同工作。如果有三個(gè)JavaBean,它們分別具有顯示新聞、股票價(jià)格、天氣情況的功能,則創(chuàng)建包含所有這三種功能的Web頁(yè)面只需要實(shí)例化這三個(gè)Bean,使用HTML表格將它們依次定位就可以了。要更改JavaBean的特性,使用<jsp:setProperty>標(biāo)記,對(duì)這個(gè)標(biāo)記,要辨認(rèn)bean以及要修正的特性,除此之外,還要提供新值。如果命名正確,這些可以直接經(jīng)由規(guī)定的格式取得:<jsp:setPropertyid="localName"property="*"/>。要將JavaBean的class類別放在特別位置,讓網(wǎng)絡(luò)服務(wù)器可以找道JavaBean。4.2JavaBean在招標(biāo)信息管理系統(tǒng)中的應(yīng)用4.2.1項(xiàng)目數(shù)據(jù)Bean的編寫應(yīng)用面向?qū)ο蟮乃枷氚丫哂泄残缘膶?shí)體抽象成一個(gè)類。這個(gè)項(xiàng)目Bean就是對(duì)項(xiàng)目實(shí)體的抽象,它包含了項(xiàng)目實(shí)體的所有屬性及項(xiàng)目對(duì)象的初始化構(gòu)造方法。packagezhaobiao.data;/***<p>Title:項(xiàng)目類</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2003</p>*<p>Company:</p>*@authorunascribed*@version1.0*/publicclassProject_implementsComparable{privateStringproject_cost;//項(xiàng)目造價(jià)privateStringproject_content;//項(xiàng)目?jī)?nèi)容privateStringproject_time;//項(xiàng)目開始日期privateStringproject_id;//項(xiàng)目IDprivateStringproject_name;//項(xiàng)目名稱privateStringproject_company;//項(xiàng)目負(fù)責(zé)publicProject_product(){……}4.2.2產(chǎn)品數(shù)據(jù)Bean的編寫這個(gè)類是對(duì)產(chǎn)品實(shí)體的抽象,它包含了產(chǎn)品實(shí)體的所有屬性及產(chǎn)品對(duì)象的初始化構(gòu)造方法。packagezhaobiao.data;importjava.util.*;/***<p>Title:產(chǎn)品數(shù)據(jù)類</p>*<p>Description:</p>*<p>Copyright;(c)2003</p>*<p>Company;</p>*@authorunascribed*@version1.0*/publicclassProductimplementsComparable{privatelongproduct_id;//產(chǎn)品IDprivatelongtype_id;//類別IDprivateStringproduct_content;//產(chǎn)品簡(jiǎn)介privateStringproduct_name;//產(chǎn)品名稱privatelongmaker_id;//廠商IDpublicProduct(){}……}4.2.3廠商數(shù)據(jù)Bean的編寫這個(gè)類是對(duì)廠商實(shí)體的抽象,它包含了廠商實(shí)體的所有屬性及廠商對(duì)象的初始化構(gòu)造方法。packagezhaobiao.data;/***<p>Title:廠商數(shù)據(jù)類</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2003</p>*<p>Company:</p>*@authorunascribed*@version1.0*/publicclassMaker{privatelongmaker_id;//廠商IDprivateStringmaker_name;//廠商名稱privateStringmaker_address;//廠商地址privateStringmaker_cr_time;//廠商建立時(shí)間privateStringmaker_cr_address;//廠商建立地址privateStringmaker_cr_cost;//廠商注冊(cè)資金privateStringmaker_fr_name;//廠商法人名稱privateStringmaker_fr_position;//廠商法人職務(wù)privateStringmaker_attribute;//企業(yè)性質(zhì)privateStringmaker_relation;//廠分支機(jī)構(gòu)、分公司、分廠辦事處聯(lián)系privateStringmaker_db_content;//制造商在中國(guó)辦事處或代理商代表的資料publicMaker(){}……}4.2.4類別數(shù)據(jù)Bean的編寫這個(gè)類是對(duì)類別列表實(shí)體的抽象,它包含了類別實(shí)體的所有屬性及類別對(duì)象的初始化構(gòu)造方法。Packagezhaobiao.data;/***<p>Title:類別數(shù)據(jù)類</p>*<p>Copyright:Copyright(c)2003</p>*<p>Company:</p>*authorunascribed*@version1.0*/publicclassTypeimplementscomparable{privatelongtype_id;//類別IDprivateStringtype_name;//類別名稱privateStringtype_content;//類別簡(jiǎn)介publicType(){}……}4.2.5項(xiàng)目和產(chǎn)品類別關(guān)聯(lián)Bean的編寫這個(gè)類是對(duì)項(xiàng)目和產(chǎn)品類別實(shí)體的抽象,它包含了項(xiàng)目和產(chǎn)品類別實(shí)體的所有屬性及項(xiàng)目和產(chǎn)品類別對(duì)象的初始化構(gòu)造方法[10]。packagezhaobiao.data;/***<p>Title:項(xiàng)目和產(chǎn)品通過(guò)類別的關(guān)聯(lián)類</P>*<p>Description:</p>*<p>Copyright:Copyright(c)2003</P>*<p>Company:</p>*authorunascribed*@version1.0*/publicclassproject_product{privatelongtype_id;//類別IDprivatelongproject_id//項(xiàng)目IDpublicProject_product(){}……}4.2.6項(xiàng)目、產(chǎn)品、廠商關(guān)聯(lián)Bean的編寫這個(gè)類是對(duì)項(xiàng)目、產(chǎn)品、廠商關(guān)聯(lián)實(shí)體的抽象,它包含了項(xiàng)目、產(chǎn)品、廠商關(guān)聯(lián)實(shí)體的所有屬性及對(duì)應(yīng)對(duì)象的初始化構(gòu)造方法。packagezhaobiao.data;/***<p>Title:</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2003</P>*@authorunascribed*@version1.0*/publicclassppm{privatelongid;//IDprivatelongproject_id;//項(xiàng)目IDprivatelongproduct_id;//產(chǎn)品IDprivatelongmaker_id;//廠商IDprivateBooleanzhongbiao;//是否中標(biāo)privatelongprice_id;//報(bào)價(jià)IDpublicppm(){}……}4.2.7前臺(tái)管理廠商Bean的編寫這是一個(gè)以招標(biāo)管理為中心的管理平臺(tái),核心的邏輯關(guān)系就是項(xiàng)目、產(chǎn)品、廠商之間的關(guān)聯(lián)管理。項(xiàng)目關(guān)聯(lián)產(chǎn)品,產(chǎn)品屬于某種類別,同事產(chǎn)品必須由生產(chǎn)廠商[11]。(1)從getMakerList(longpage,longpagemax)方法功能:根據(jù)當(dāng)前頁(yè)數(shù)、每頁(yè)顯示的最大記錄數(shù)來(lái)獲得廠商集合。返回值:該頁(yè)要顯示的廠商記錄集合Vector。設(shè)計(jì)思路:首先需要查詢出所有的廠商記錄,然后在記錄中選擇出需要在該頁(yè)顯示并符合范圍的廠商記錄(2)getMakerListCount()方法功能:獲得所有廠商的記錄數(shù)。返回值:長(zhǎng)整型。設(shè)計(jì)思路:在頁(yè)面上提供分頁(yè)頁(yè)數(shù)的時(shí)候,需要知道所有的記錄數(shù),然后再除以每頁(yè)顯示的最大記錄數(shù)來(lái)獲得。4.2.8后臺(tái)管理廠商Bean的編寫該類主要是在后臺(tái)中對(duì)廠商數(shù)據(jù)進(jìn)行管理,包括廠商的修改、刪除、添加等。該類具有以下屬性。(1)privateDBConnectionManagerdb:數(shù)據(jù)庫(kù)連接池實(shí)例。(2)privateConnectioncon=null:數(shù)據(jù)庫(kù)連接對(duì)象。(3)privateResultSetrs=null:數(shù)據(jù)查詢的結(jié)果集。(4)privatePreparedStatementps=null:數(shù)據(jù)庫(kù)操作執(zhí)行狀態(tài)對(duì)象。該類具有以下主要方法。(1)addMaker():完成廠商添加。(2)dealmaker():負(fù)責(zé)廠商的刪除。(3)freeCon():主要完成釋放該類中的數(shù)據(jù)庫(kù)連接。(4)main():默認(rèn)的main方法,可以測(cè)試使用,在開發(fā)中做測(cè)試。(5)NewMaker():默認(rèn)的構(gòu)造函數(shù)。(6)UpdateMaker():負(fù)責(zé)廠商的更新(修改)有四個(gè)重點(diǎn)方法。(1)addMaker()方法功能:負(fù)責(zé)根據(jù)廠商對(duì)象來(lái)添加廠商記錄。參數(shù)設(shè)計(jì):Maker廠商對(duì)象。返回值:無(wú)。設(shè)計(jì)思路:根據(jù)廠商對(duì)象來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)廠商記錄的添加,但由于數(shù)據(jù)庫(kù)中的廠商maker_id為主鍵,插入時(shí)必須獲得最大maker_id值,并加一個(gè)作為插入的廠商的maker_id。(2)delMaker()方法功能:負(fù)責(zé)廠商的刪除。參數(shù)設(shè)計(jì):需要知道要?jiǎng)h除的廠商的maker_id。返回值:void。設(shè)計(jì)思路:獲得頁(yè)面?zhèn)鬟f的maker_id,在數(shù)據(jù)庫(kù)中執(zhí)行刪除操作。(3)updateMaker()方法功能:負(fù)責(zé)廠商的更新(修改)。參數(shù)設(shè)計(jì):更新的Maker對(duì)象。返回值:void。設(shè)計(jì)思路:根據(jù)更新后的廠商對(duì)象,來(lái)執(zhí)行更新操作(4)freeCon()方法功能:負(fù)責(zé)釋放該類中的數(shù)據(jù)庫(kù)連接。參數(shù)設(shè)計(jì):無(wú)。返回值:無(wú)。設(shè)計(jì)思路:釋放數(shù)據(jù)庫(kù)資源。4.2.9前臺(tái)管理項(xiàng)目Bean項(xiàng)目的編寫由于招標(biāo)管理中項(xiàng)目是很重要的一個(gè)實(shí)體對(duì)象,因而需要對(duì)項(xiàng)目進(jìn)行各種操作管理,類似于廠商對(duì)象的管理,對(duì)于前臺(tái)來(lái)說(shuō),主要用來(lái)瀏覽和查詢使用。該類具有的屬性如下。(1)privateDBConnectionManagerdb:數(shù)據(jù)庫(kù)連接實(shí)例。(2)privateConnectioncon=null:數(shù)據(jù)連接對(duì)象。(3)privateResultSetrs=null:數(shù)據(jù)查詢的結(jié)果集。(4)privatePreparedStatementps=數(shù)據(jù)庫(kù)操作執(zhí)行狀態(tài)對(duì)象。該類具有如下方法。(1)freeCon():負(fù)責(zé)釋放數(shù)據(jù)庫(kù)連接。(2)getPPMList():根據(jù)項(xiàng)目ID和產(chǎn)品ID得到相關(guān)的PPM的ID的集合(分頁(yè))。(3)getPPMListCount():根據(jù)項(xiàng)目ID和產(chǎn)品ID得到相關(guān)的PPM集合的數(shù)量。(4)getProjectList():獲得所有的項(xiàng)目集合(分頁(yè))。(5)getProjectListCount():獲得所有項(xiàng)目集合的最大數(shù)量。(6)getProjectTypeList():根據(jù)項(xiàng)目ID獲得該項(xiàng)目相關(guān)的所有類別列表。(7)getPTProductList():根據(jù)項(xiàng)目ID和類別ID獲得滿足兩個(gè)條件的產(chǎn)品集合(Set類型)。(8)getPTProductListCount():根據(jù)項(xiàng)目ID和類別ID獲得滿足兩個(gè)條件的產(chǎn)品數(shù)量。4.2.10后臺(tái)管理項(xiàng)目Bean的編寫為了功能邏輯上的方便,把對(duì)項(xiàng)目進(jìn)行后臺(tái)操作的方法作為一個(gè)管理類NewProject。該類具有以下屬性:(1)privateDBConnectionManagerdb:數(shù)據(jù)庫(kù)連接池實(shí)例。(2)privateConnectioncon=null:數(shù)據(jù)連接對(duì)象。(3)privateResultSetrs=null:數(shù)據(jù)查詢的結(jié)果集。(4)privatePreparedStatementps=null:數(shù)據(jù)庫(kù)操作執(zhí)行狀態(tài)對(duì)象該類具有以下方法。(1)NewProject():默認(rèn)的構(gòu)造方法。(2)addProject():負(fù)責(zé)項(xiàng)目的添加。(3)addProjectType():負(fù)責(zé)由項(xiàng)目ID和類別ID,在項(xiàng)目_類別關(guān)聯(lián)表中添加一條記錄。(4)delProject():負(fù)責(zé)特定ID的項(xiàng)目的刪除。(5)delProjectIDType():根據(jù)項(xiàng)目ID和類別ID刪除項(xiàng)目_類別關(guān)聯(lián)表中的記錄。(6)delProjectIDTypeID():根據(jù)類別ID刪除項(xiàng)目_類別關(guān)聯(lián)表中的記錄。(7)delProjectTypeID():負(fù)責(zé)用戶資料的修改。(8)updateProject():更新一個(gè)項(xiàng)目記錄。(9)freeCon():負(fù)責(zé)釋放數(shù)據(jù)庫(kù)資源。4.2.11前臺(tái)搜索Bean的編寫這個(gè)類主要是為實(shí)現(xiàn)前臺(tái)進(jìn)行信息搜索的需要而設(shè)計(jì)的。該類具有以下屬性。(1)privateDBConnectionManagerdb:數(shù)據(jù)庫(kù)連接池實(shí)例。(2)privateConnectioncon=null:數(shù)據(jù)連接對(duì)象。(3)privateResultSetrs=null:數(shù)據(jù)查詢的結(jié)果集。(4)privatePreparedStatementps=null:數(shù)據(jù)庫(kù)操作執(zhí)行狀態(tài)對(duì)象。該類具有以下方法。(1)Search():默認(rèn)構(gòu)造方法。(2)FreeCon():負(fù)責(zé)釋放數(shù)據(jù)庫(kù)連接。(3)searchMaker():負(fù)責(zé)根據(jù)關(guān)鍵字搜索廠商。(4)searchProduct():負(fù)責(zé)根據(jù)關(guān)鍵字搜索產(chǎn)品。(5)searchProject():負(fù)責(zé)根據(jù)關(guān)鍵字搜索項(xiàng)目。以下四個(gè)重要方法(1)searchMaker()方法功能:負(fù)責(zé)根據(jù)關(guān)鍵字搜索所有符合條件的廠商記錄。參數(shù)設(shè)計(jì):頁(yè)面?zhèn)鬟f的搜索關(guān)鍵字Key。返回值:Vector類型。設(shè)計(jì)思路:根據(jù)從頁(yè)面?zhèn)鬟f來(lái)的搜索關(guān)鍵字Key來(lái)搜索廠商表,來(lái)獲得符合條件的廠商記錄。(2)searchProduct()方法功能:負(fù)責(zé)根據(jù)關(guān)鍵字搜索所有符合條件的產(chǎn)品記錄。參數(shù)設(shè)計(jì):頁(yè)面?zhèn)鬟f的搜索關(guān)鍵字Key。返回值:Vector類型。設(shè)計(jì)思路:根據(jù)從頁(yè)面?zhèn)鬟f來(lái)的搜索關(guān)鍵字Key來(lái)搜索產(chǎn)品表,從而獲得符合條件的產(chǎn)品記錄。(3)searchProject()方法功能:負(fù)責(zé)根據(jù)關(guān)鍵字搜索所有符合條件的項(xiàng)目記錄。參數(shù)設(shè)計(jì):頁(yè)面?zhèn)鬟f的搜索關(guān)鍵字Key。返回值:Vector類型。設(shè)計(jì)思路:根據(jù)從頁(yè)面?zhèn)鬟f來(lái)的搜索關(guān)鍵字Key來(lái)搜索項(xiàng)目表,從而獲得符合條件的項(xiàng)目記錄。第五章JDBC在招標(biāo)信息管理系統(tǒng)中的應(yīng)用5.1JDBC的介紹JDBC是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI,它由一組用Java編程語(yǔ)言編寫的類和接口組成。JDBC可做三件事:與數(shù)據(jù)庫(kù)建立連接,發(fā)送SQL語(yǔ)句,處理結(jié)果。JDBC為工具、數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,使他們能夠用純JavaAPI來(lái)編寫數(shù)據(jù)庫(kù)應(yīng)用程序。有了JDBC向各種關(guān)系數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句就是一件很容易的事。換言之,有了JDBCAPI,就不必為訪問(wèn)Sybase數(shù)據(jù)庫(kù)專門寫一個(gè)程序,為訪問(wèn)Oracle數(shù)據(jù)庫(kù)又專門寫一個(gè)程序,為訪問(wèn)Informix數(shù)據(jù)庫(kù)又寫另一個(gè)程序等等。只需用JDBCAPI寫一個(gè)程序就夠了,它可向相應(yīng)數(shù)據(jù)庫(kù)發(fā)送SQL語(yǔ)句。而且,使用Java編程語(yǔ)言編寫的應(yīng)用程序,就無(wú)須去憂慮要為不同的平臺(tái)編寫不同的應(yīng)用程序。將Java和JDBC結(jié)合起來(lái)將使程序員只須寫一遍程序就可讓它在任何平臺(tái)上運(yùn)行。Java具有堅(jiān)固、安全、易于使用、易于理解和可從網(wǎng)絡(luò)上自動(dòng)下載等特性,是編寫數(shù)據(jù)庫(kù)應(yīng)用程序的杰出語(yǔ)言,所需要的只是Java應(yīng)用程序與各種不同數(shù)據(jù)庫(kù)之間進(jìn)行對(duì)話的方法。而JDBC正是作為此種用途的機(jī)制JDBC擴(kuò)展了Java的功能。例如用Java和JDBCAPI可以發(fā)布含有applet的網(wǎng)頁(yè),而該applet使用的信息可能來(lái)自遠(yuǎn)程數(shù)據(jù)庫(kù)。企業(yè)也可以用JDBC通過(guò)Intranet將所有職員連到一個(gè)或多個(gè)內(nèi)部數(shù)據(jù)庫(kù)中。隨著越來(lái)越多的程序員開始使用Java編程語(yǔ)言,對(duì)從Java中便捷地訪問(wèn)數(shù)據(jù)庫(kù)的要求也在日益增加。MIS管理員們都喜歡Java和JDBC的結(jié)合,因?yàn)樗剐畔鞑プ兊萌菀缀徒?jīng)濟(jì)。企業(yè)可繼續(xù)使用它們安裝好的數(shù)據(jù)庫(kù),并能便捷地存取信息,即使這些信息是儲(chǔ)存在不同數(shù)據(jù)庫(kù)管理系統(tǒng)上。新程序的開發(fā)期很短,安裝和版本控制將大為簡(jiǎn)化,程序員可只編寫一遍應(yīng)用程序或只更新一次,然后將它放到服務(wù)器上,隨后任何人就都可得到最新版本的應(yīng)用程序。對(duì)于商務(wù)上的銷售信息服務(wù),Java和JDBC可為外部客戶提供獲取信息更新的更好方法。連接池類是對(duì)某一數(shù)據(jù)庫(kù)所有連接的“緩沖池”,主要實(shí)現(xiàn)以下功能:(1)從連接池獲取或創(chuàng)建可用連接;(2)使用完畢之后,把連接返還給連接池;(3)在系統(tǒng)關(guān)閉前,斷開所有連接并釋放連接占用的系統(tǒng)資源;(4)能夠處理無(wú)效連接,并能夠限制連接池中的連接總數(shù)不低于某個(gè)預(yù)定值和不超過(guò)某個(gè)預(yù)定值。連接池管理類是連接池類的外覆類(wrapper),符合單例模式,即系統(tǒng)中只能有一個(gè)連接池管理類的實(shí)例,主要用于對(duì)多個(gè)連接池對(duì)象的管理,具有以下功能:(1)裝載并注冊(cè)特定數(shù)據(jù)庫(kù)的JDBC驅(qū)動(dòng)程序;(2)根據(jù)屬性文件給定的信息,創(chuàng)建連接池對(duì)象;(3)為方便管理多個(gè)連接池對(duì)象,為每一個(gè)連接池對(duì)象取一個(gè)名字,實(shí)現(xiàn)連接池名字與其實(shí)例之間的映射;(4)跟蹤客戶使用連接情況,以便需要是關(guān)閉連接釋放資源。連接池管理類的引入主要是為了方便對(duì)多個(gè)連接池的使用和管理,如系統(tǒng)需要連接不同的數(shù)據(jù)庫(kù),或連接相同的數(shù)據(jù)庫(kù)但由于安全性問(wèn)題,需要不同的用戶使用不同的名稱和密碼。5.2JDBC在招標(biāo)信息管理系統(tǒng)中的應(yīng)用JDBC作為一種面向?qū)ο蟮姆庋b和對(duì)ODBCAPI的重新設(shè)計(jì),它易于掌握而且確實(shí)允許編寫?yīng)毩⒂谔峁┥痰拇a來(lái)查詢和處理數(shù)據(jù)庫(kù)。如同所有的JavaAPI,JDBC是面向?qū)ο蟮?,它不是一組很高級(jí)別的對(duì)象。若數(shù)據(jù)庫(kù)和查詢它的應(yīng)用程序在同一臺(tái)機(jī)器上且沒(méi)有提交的服務(wù)器代碼,這就是結(jié)果的程序?yàn)槎幽P?。?yīng)用程序是其中一層而數(shù)據(jù)庫(kù)是另一層。JDBC-ODBCbridge系統(tǒng)就是這種類型。若一個(gè)應(yīng)用程序或applet調(diào)用服務(wù)器,再由服務(wù)器調(diào)用數(shù)據(jù)庫(kù),這種方式為三層模型。當(dāng)有程序調(diào)用服務(wù)器時(shí)便是這種類型。JDBC是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI,由一組用Java編程語(yǔ)言編寫的類和接口組成。JDBC為數(shù)據(jù)庫(kù)開發(fā)人員提供了一組標(biāo)準(zhǔn)的API,使他們能夠用純JavaAPI來(lái)編寫數(shù)據(jù)庫(kù)應(yīng)用程序[12]。數(shù)據(jù)庫(kù)廠商一般會(huì)提供一組API訪問(wèn)數(shù)據(jù)庫(kù),在安裝完SQLServer2000后再去微軟官方網(wǎng)站下載JDBC驅(qū)動(dòng)程序,然后將下載到的三個(gè)JAR包(mssqlserver.jar;msbase.jar;msutil.jar)放入WEB應(yīng)用的WEB-INF/lib/下。再將SQLServer2000升級(jí)到sp3,便能將SQLServer2000默認(rèn)的1433端口打開,這樣JavaBean才可以順利地訪問(wèn)數(shù)據(jù)庫(kù)[13]。在Java語(yǔ)言中,JDBC(JavaDataBaseConnection)是應(yīng)用程序與數(shù)據(jù)庫(kù)溝通的橋梁,即Java語(yǔ)言通過(guò)JDBC技術(shù)訪問(wèn)數(shù)據(jù)庫(kù)。JDBC是一種“開放”的方案,它為數(shù)據(jù)庫(kù)應(yīng)用開發(fā)人員﹑數(shù)據(jù)庫(kù)前臺(tái)工具開發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計(jì)接口,使開發(fā)人員可以用純Java語(yǔ)言編寫完整的數(shù)據(jù)庫(kù)應(yīng)用程序。JDBC提供兩種API,分別是面向開發(fā)人員的API和面向底層的JDBC驅(qū)動(dòng)程序API,底層主要通過(guò)直接的JDBC驅(qū)動(dòng)和JDBC-ODBC橋驅(qū)動(dòng)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接。Java程序有四種方法與數(shù)據(jù)庫(kù)相連:(1)JDBC-ODBCbridge和一個(gè)ODBC驅(qū)動(dòng)程序:在這種情況下,ODBC驅(qū)動(dòng)程序和橋代碼必須在每個(gè)用戶的機(jī)器上,所有這是個(gè)本地的解決方案,同時(shí)也是一種臨時(shí)的解決方案。(2)本地代碼加Java驅(qū)動(dòng)程序:用另外一種本地解決方案代替了ODBC和橋,能被Java調(diào)用的平臺(tái)的本地代碼。(3)JDBC-網(wǎng)絡(luò)純Java驅(qū)動(dòng)程序:Java驅(qū)動(dòng)程序?qū)DBC調(diào)用翻譯成傳輸?shù)椒?wù)器的一種獨(dú)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論