華東區(qū)微軟杯軟件構(gòu)件制作大獎(jiǎng)賽_第1頁
華東區(qū)微軟杯軟件構(gòu)件制作大獎(jiǎng)賽_第2頁
華東區(qū)微軟杯軟件構(gòu)件制作大獎(jiǎng)賽_第3頁
華東區(qū)微軟杯軟件構(gòu)件制作大獎(jiǎng)賽_第4頁
華東區(qū)微軟杯軟件構(gòu)件制作大獎(jiǎng)賽_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、華東區(qū)微軟杯軟件構(gòu)件制作大獎(jiǎng)賽構(gòu)件設(shè)計(jì)文檔構(gòu)件名稱: DataBaseLink V1.0 構(gòu)件制作人: * 指導(dǎo)老師: * 編制日期: 2004-9-10 1 概述1.1 背景隨著現(xiàn)今軟件應(yīng)用技術(shù)的不斷地發(fā)展以及企業(yè)的業(yè)務(wù)的發(fā)展, 企業(yè)的各個(gè)系統(tǒng)都面臨著不斷的更新與調(diào)整。由于大多數(shù)企業(yè)使用各種異構(gòu)的數(shù)據(jù)庫,加上企業(yè)系統(tǒng)地的其它要求:如靈活的應(yīng)用模式對(duì)于軟件的可擴(kuò)展性的要求,復(fù)雜的分布式環(huán)境下的應(yīng)用、較短的軟件開發(fā)周期等因素的存在,使得開發(fā)企業(yè)系統(tǒng)變得十分的困難。為了部分緩解企業(yè)系統(tǒng)的開發(fā)難度。我們迫切需要一種通用的構(gòu)件,來快速方便的實(shí)現(xiàn)新開發(fā)的系統(tǒng)與各種類型的數(shù)據(jù)庫的連接。鑒于此,我們開發(fā)了D

2、ataLink構(gòu)件,使用這個(gè)構(gòu)件能夠減少數(shù)據(jù)庫連接的復(fù)雜性,從而大大提高軟件開發(fā)效率。1.2 目標(biāo)為提高軟件開發(fā)效率,減少數(shù)據(jù)庫連接的復(fù)雜性,提出采用構(gòu)件化和軟件復(fù)用的方法進(jìn)行軟件開發(fā),此DataLink構(gòu)件設(shè)計(jì)的目標(biāo)是在各種情況下,程序員都能用其連接數(shù)據(jù)庫。1.3 術(shù)語定義EJB:EJB技術(shù)定義了一組可重用的組件:Enterprise Beans??梢岳眠@些組件,像搭積木一樣的建立分布式應(yīng)用程序。當(dāng)把代碼寫好之后,這些組件就被組合到特定的文件中去。每個(gè)文件有一個(gè)或多個(gè)Enterprise Beans,再加上一些配置參數(shù)。最后,這些Enterprise Beans被配置到一個(gè)裝了EJB容器的

3、平臺(tái)上。1.4 參考資料The Elements of Java StyleJava 2 Platform Enterprise Edition Specification, v1.41.5 命名規(guī)則(可選)本構(gòu)件文件名稱、程序名稱、數(shù)據(jù)字段名以及變量名稱,都參考自The Elements of Java Style。如果有自己特殊的命名規(guī)則,請(qǐng)自行說明2 構(gòu)件范圍界定與分析2.1 功能性要求此數(shù)據(jù)庫構(gòu)件沿襲了對(duì)象的封裝特性,但同時(shí)又并不局限在一個(gè)對(duì)象,其內(nèi)部封裝了多個(gè)類、原型對(duì)象甚至過程,結(jié)構(gòu)更靈活,應(yīng)用也更加方便、靈活,另外,此構(gòu)件突出了自包容和被包容的特性,便于軟件的開發(fā)生產(chǎn)。此數(shù)據(jù)庫構(gòu)

4、件有如下的幾個(gè)基本屬性:1、此構(gòu)件是可獨(dú)立配置的單元,他可作為一個(gè)獨(dú)立的軟件,單獨(dú)運(yùn)行,用戶使用時(shí),可以像裝配零件一樣去使用。2、此數(shù)據(jù)庫構(gòu)件強(qiáng)調(diào)與環(huán)境和其他構(gòu)件的分離,因此構(gòu)件的實(shí)現(xiàn)時(shí)嚴(yán)格封裝的,外界沒機(jī)會(huì)或沒必要知道構(gòu)件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),Home()接口對(duì)用戶屏蔽了所有內(nèi)部實(shí)現(xiàn)過程。3、此構(gòu)件可以在適當(dāng)?shù)沫h(huán)境中被復(fù)合使用。在設(shè)計(jì)此構(gòu)件時(shí),一個(gè)目標(biāo)就是使用戶在各種需要的環(huán)境下,復(fù)用此構(gòu)件,因此構(gòu)件提供清楚的接口規(guī)范,可以與環(huán)境交互。從以上四個(gè)屬性可以看出, 2.2 非功能性介紹構(gòu)件的非功能性特征,如:構(gòu)件并發(fā)處理要求、異常處理、安全機(jī)制等。2.3 環(huán)境依賴描述構(gòu)件對(duì)于操作系統(tǒng)、開發(fā)工具、容器、

5、實(shí)現(xiàn)的語言和平臺(tái)等的依賴。本構(gòu)件由Java語言編寫, 在WebSphere環(huán)境下開發(fā), 由于Java的跨平臺(tái)特性,因此本構(gòu)件能用于各種平臺(tái)下的數(shù)據(jù)庫連接.EJB容器向程序開發(fā)人員提供了最大程度的方便,簡化了分布式應(yīng)用程序的復(fù)雜的方面,如:安全性,事務(wù)協(xié)調(diào)性,數(shù)據(jù)持久性,EJB容器被打包成一個(gè)標(biāo)準(zhǔn)的JAVA文件,一個(gè)EJB文件可以包括一個(gè)或多個(gè)的Enterprise Beans。對(duì)每一個(gè)Enterprise beans,都有它的接口,類,和配置描述器。用戶調(diào)用此構(gòu)件的 Home()接口時(shí),在客戶端生成一個(gè)Enterprise Beans的實(shí)例,隨后可對(duì)此數(shù)據(jù)庫構(gòu)件按用戶需求進(jìn)行配置。3 可變機(jī)制

6、的設(shè)計(jì)用戶選擇數(shù)據(jù)庫后,可對(duì)數(shù)據(jù)庫進(jìn)行選擇,更新,刪除操作。對(duì)于用戶不同的參數(shù)選擇,構(gòu)件生成不同的SQL語句,如:當(dāng)用戶選定數(shù)據(jù)庫表Student,要對(duì)其進(jìn)行選擇操作時(shí),構(gòu)件自動(dòng)列出用戶可選的字段(StudentNM,Name,Birthday,Sex,Major),用戶可從中選擇需要的字段,然后加入約束條件,如StudentNM 從1-100,則相應(yīng)的數(shù)據(jù)庫查詢語句生成為:Select StudentNM Name from Student where StudetNM between 1 and 100數(shù)據(jù)庫連接上后,就可對(duì)數(shù)據(jù)庫執(zhí)行查詢語句。4 內(nèi)部結(jié)構(gòu)設(shè)計(jì)4.1 內(nèi)部對(duì)象1.數(shù)據(jù)庫連接

7、對(duì)象屬性:主機(jī)名,用戶名,密碼,數(shù)據(jù)庫名.數(shù)據(jù)庫連接驅(qū)動(dòng),數(shù)據(jù)庫類型.方法: GetConnName(String hostName) 參數(shù)為連接數(shù)據(jù)庫的主機(jī)名 GetUserName(String UserName) 參數(shù)為數(shù)據(jù)庫用戶名 GetPWD(String PWD) 參數(shù)為登錄數(shù)據(jù)庫密碼 GetDriver(String Driver) 參數(shù)為所要連接的數(shù)據(jù)庫驅(qū)動(dòng) GetDBType(String DBType) 參數(shù)為數(shù)據(jù)庫類型 GetDBName(String DBName) 參數(shù)為數(shù)據(jù)庫名IO流操作Void main() 獲取數(shù)據(jù)庫連接屬性,實(shí)現(xiàn)連接數(shù)據(jù)庫獲取主機(jī)名獲取用戶名獲

8、取密碼獲取數(shù)據(jù)庫名數(shù)據(jù)庫連接類型數(shù)據(jù)庫連接驅(qū)動(dòng)數(shù)據(jù)庫連接類導(dǎo)出實(shí)例化為數(shù)據(jù)庫連接對(duì)象生成conn文件4.2 子構(gòu)件4.2.1 構(gòu)件列表子構(gòu)件編號(hào)子構(gòu)件名稱1001Oracle JDBC驅(qū)動(dòng)程序1002SQL Server 2000 JDBC驅(qū)動(dòng)程序1003DB2 Universal Database JDBC驅(qū)動(dòng)程序1004My SQL JDBC驅(qū)動(dòng)程序1005Microsoft Access JDBC驅(qū)動(dòng)程序1006試驗(yàn)服務(wù)器平臺(tái)(Tomcat)4.2.2 構(gòu)件間關(guān)系4.2.2.1連接文件生成模塊5 數(shù)據(jù)設(shè)計(jì)5.1 內(nèi)部數(shù)據(jù)結(jié)構(gòu)本構(gòu)件使用標(biāo)準(zhǔn)的Ejb數(shù)據(jù)結(jié)構(gòu),如果有特殊的格式可以自行列出。5

9、.2 數(shù)據(jù)庫設(shè)計(jì)此示例構(gòu)件對(duì)于數(shù)據(jù)庫沒有特殊要求。如果此構(gòu)件需要特殊數(shù)據(jù)庫,則進(jìn)行描述。6 接口內(nèi)部設(shè)計(jì)描述構(gòu)件每個(gè)接口的功能。圖例#1001輸入端輸出端6.1 #1001 Oracle JDBC驅(qū)動(dòng)程序#1006試驗(yàn)服務(wù)器平臺(tái)(Tomcat)數(shù)據(jù)庫實(shí)體#10016.2 #1002 SQL Server 2000 JDBC驅(qū)動(dòng)程序(類似于#1001)7 非功能部分設(shè)計(jì)7.1 異常處理(僅列出主要的錯(cuò)誤類型)異常類型產(chǎn)生原因處理方法備注NoSuchHostException找不到相應(yīng)主機(jī)HandleNoSuchHostException()ArthmaticException數(shù)學(xué)錯(cuò)誤Handle

10、ArthmaticException()NoSuchPathException系統(tǒng)未發(fā)現(xiàn)此目錄存在HandleNoSuchPathException()7.2 安全性1 本構(gòu)件及其內(nèi)部的子構(gòu)件均是用JAVA語言構(gòu)建的,其整體結(jié)構(gòu)為一系列類的集合。數(shù)據(jù)都采用封裝的機(jī)制隱藏在類中;因此,數(shù)據(jù)無論是在調(diào)試時(shí)還是在運(yùn)行時(shí),都呈現(xiàn)出較好的安全特性。2 本構(gòu)件考慮到了一系列的意外情況,并相應(yīng)的定義了一系列的例外處理函數(shù),使得在程序執(zhí)行中出現(xiàn)的大部分意外情況能得到及時(shí)、正確的處理。3 至于數(shù)據(jù)庫內(nèi)部的數(shù)據(jù)的安全性,完全交由DBMS處理。8 界面設(shè)計(jì)本構(gòu)件在組裝時(shí)是通過一系列接口實(shí)現(xiàn)的,核心是實(shí)現(xiàn)與數(shù)據(jù)庫的自

11、動(dòng)連接,本程序所呈現(xiàn)出來的界面只是作為一個(gè)功能演示;當(dāng)然,如果應(yīng)用程序裝配員愿意,也可直接使用本程序提供的界面。8.1 設(shè)計(jì)時(shí)7.1.1 數(shù)據(jù)庫連接界面IfD#0017.1.2 數(shù)據(jù)庫連接測(cè)試失敗界面IfD#0028.2 運(yùn)行時(shí)由于在進(jìn)行設(shè)計(jì)界面時(shí),使用的是可視化的設(shè)計(jì)環(huán)境,所以在實(shí)際運(yùn)行時(shí),所看到的界面與上面列出的大同小異。所不同的是,多了一些附加頁面,比如對(duì)例外處理中所需要顯示的警告,提示(如下圖所示)頁面等。9 構(gòu)件生命周期(構(gòu)件運(yùn)行時(shí)從建立到撤銷的整個(gè)生命周期過程)上層環(huán)境提出條用此構(gòu)件模塊的請(qǐng)求調(diào)用IfD#001界面數(shù)據(jù)庫連接成功數(shù)據(jù)庫連接失敗調(diào)用IfD#002界面否是調(diào)用IfD#0

12、03否是生成連接文件,詢問是否要測(cè)試數(shù)據(jù)庫操作調(diào)用IfD#006IfD#004IfD#005成功失敗退出到上層環(huán)境上圖中紅色方框內(nèi)部分即為整個(gè)構(gòu)件的生命期10 構(gòu)件封裝描述構(gòu)件封裝后的文件結(jié)構(gòu)及各文件所提供的接口。本構(gòu)件由如下文件組成Conn.java (主要完成數(shù)據(jù)庫連接工作) Error.java (封裝以上提出的異常處理,處理運(yùn)行時(shí)錯(cuò)誤的文件)Select.java (執(zhí)行記錄選擇操作) Update.java (執(zhí)行記錄更新操作)Delete.java (執(zhí)行刪除記錄操作) 構(gòu)件封裝之后文件結(jié)構(gòu)如下:Conn.java數(shù)據(jù)庫連接Error.java失敗調(diào)整成功Select.javaUp

13、date.javaDelete.java成功失敗輸出Error.java各文件的提供的接口為:Conn.java文件:GetConnName(String hostName) 參數(shù)為連接數(shù)據(jù)庫的主機(jī)名GetUserName(String UserName) 參數(shù)為數(shù)據(jù)庫用戶名GetPWD(String PWD) 參數(shù)為登錄數(shù)據(jù)庫密碼 GetDriver(String Driver) 參數(shù)為所要連接的數(shù)據(jù)庫驅(qū)動(dòng)GetDBType(String DBType) 參數(shù)為數(shù)據(jù)庫類型GetDBName(String DBName) 參數(shù)為數(shù)據(jù)庫名 Select.java文件: GetTableName(String TableName) 參數(shù)為要進(jìn)行選擇操作的數(shù)據(jù)表名 GetColumnName(String ColumnName) 參數(shù)為選擇的列名 GetConstraints(String constraint) 參數(shù)為選擇操作的約束條件 Update.java文件 GetTableName(String TableName) 參數(shù)為要進(jìn)行更新操作的數(shù)據(jù)表名 GetColumnName(String ColumnName) 參數(shù)為更新的列名 GetConstraints(S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論