【文章內(nèi)容簡介】
? 用來啟用數(shù)據(jù)庫訪問和操作遠(yuǎn)程對象的集成庫。浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文)5Java 技術(shù)是最初由 Sun Microsystems 公司開發(fā)的。Java Community Process(JCP ,一個(gè)由全世界的 Java 開發(fā)人員和獲得許可的人員組成的開放性組織)對 Java 技術(shù)規(guī)范、參考實(shí)現(xiàn)和技術(shù)兼容性包進(jìn)行開發(fā)和修訂。在 2022 年 8 月,Sun Microsystems 宣布它打算開放 Java 平臺的源碼,并開始征詢對許可協(xié)議和管理方式的反饋 [7]。Java 語言的主要好處是,Java 應(yīng)用程序可以跨硬件平臺和操作系統(tǒng)進(jìn)行移植 —— 這是因?yàn)槊總€(gè)平臺上安裝的 JVM 都可以理解同樣的字節(jié)碼。 Java 語言和平臺的可伸縮性非常強(qiáng)。在低端,現(xiàn)有的應(yīng)用程序可以很容易地適應(yīng)內(nèi)存資源有限的設(shè)備。這種語言是進(jìn)行服務(wù)器端 Web 編程的理想框架。因?yàn)樗辉O(shè)計(jì)為按照一種安全的方式通過網(wǎng)絡(luò)運(yùn)行,在通過互聯(lián)網(wǎng)進(jìn)行操作時(shí),它提供了一定程度的安全性。在本質(zhì)上,Java 技術(shù)將用戶的計(jì)算能力從桌面擴(kuò)展到了 Web 資源。Web 組件由稱為 Web 容器(Web container) 的運(yùn)行時(shí)平臺支持, Web 容器的服務(wù)包括請求分派、安全性、并發(fā)性、生命周期管理以及對命名、事務(wù)和電子郵件等 API 的訪問。在高端,Java 應(yīng)用服務(wù)器(application server) 作為 Java 組件、XML 和 Web 服務(wù)的 Web 容器,可以與數(shù)據(jù)庫進(jìn)行交互并提供動(dòng)態(tài)的 Web 內(nèi)容;它們還為企業(yè)應(yīng)用程序提供應(yīng)用程序開發(fā)環(huán)境,具有事務(wù)管理、安全性、集群、性能、可用性、連接性和可伸縮性等功能。Java 平臺有三個(gè)版本,這使軟件開發(fā)人員、服務(wù)提供商和設(shè)備生產(chǎn)商可以針對特定的市場進(jìn)行開發(fā):(1) Java SE(Java Platform,Standard Edition) 。Java SE 以前稱為 J2SE。它允許開發(fā)和部署在桌面、服務(wù)器、嵌入式環(huán)境和實(shí)時(shí)環(huán)境中使用的 Java 應(yīng)用程序。Java SE 包含了支持 Java Web 服務(wù)開發(fā)的類,并為 Java Platform,Enterprise Edition(Java EE )提供基礎(chǔ)。大多數(shù) Java 開發(fā)人員使用 Java SE 5,也稱為 Java 或 “Tiger”(2022 年 6 月,Java SE 6 或 “Mustang” 發(fā)布了 beta 版。 )Java EE(Java Platform,Enterprise Edition) 。這個(gè)版本以前稱為 J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java 應(yīng)用程序。Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來實(shí)現(xiàn)企業(yè)級的面向服務(wù)體系結(jié)構(gòu)(serviceoriented architecture,SOA)和 Web 應(yīng)用程序。浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文)6(2) Java EE(Java Platform,Enterprise Edition) 。這個(gè)版本以前稱為 J2EE。企業(yè)版本幫助開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端 Java 應(yīng)用程序。Java EE 是在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來實(shí)現(xiàn)企業(yè)級的面向服務(wù)體系結(jié)構(gòu)(serviceoriented architecture,SOA)和 Web 應(yīng)用程序。(3)Java ME( Java Platform,Micro Edition) 。這個(gè)版本以前稱為 J2ME。Java ME 為在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA 、電視機(jī)頂盒和打印機(jī))上運(yùn)行的應(yīng)用程序提供一個(gè)健壯且靈活的環(huán)境。Java ME 包括靈活的用戶界面、健壯的安全模型、許多內(nèi)置的網(wǎng)絡(luò)協(xié)議以及對可以動(dòng)態(tài)下載的連網(wǎng)和離線應(yīng)用程序的豐富支持。基于 Java ME 規(guī)范的應(yīng)用程序只需編寫一次,就可以用于許多設(shè)備,而且可以利用每個(gè)設(shè)備的本機(jī)功能 [8]。本系統(tǒng)是基于 Java SE 開發(fā)。 Swing 技術(shù)簡介Swing是一個(gè)用于開發(fā) Java應(yīng)用程序用戶界面的開發(fā)工具包。它以抽象窗口工具包(AWT )為基礎(chǔ)使跨平臺應(yīng)用程序可以使用任何可插拔的外觀風(fēng)格。Swing開發(fā)人員只用很少的代碼就可以利用Swing豐富、靈活的功能和模塊化組件來創(chuàng)建優(yōu)雅的用戶界面。 Swing 的體系結(jié)構(gòu)如圖 Swing 的體系結(jié)構(gòu)Swing 的主要特性包括:Swing 是由 100%純 Java 實(shí)現(xiàn)的,Swing 組件是用 Java 實(shí)現(xiàn)的輕量級(lightweight)組件,沒有本地代碼,不依賴操作系統(tǒng)的支持,這是它與 AWT 組件的最大區(qū)別。由于 AWT 組件通過與具體平臺相關(guān)的對等類(Peer )實(shí)現(xiàn),因此,Swing 比浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文)7AWT 組件具有更強(qiáng)的實(shí)用性。Swing 在不同的平臺上表現(xiàn)一致,并且有能力提供本地窗口系統(tǒng)不支持的其他特性。Swing 采用了一種 MVC 的設(shè)計(jì)范式,即“ 模型視圖控制器”(ModelViewController) ,其中,模型用來保存內(nèi)容,視圖用來顯示內(nèi)容,控制器用來控制用戶輸入。Swing 采用可插入的外觀感覺(Pluggable Look and Feel,PLamp。F) 。相對而言,在 AWT 組件中,由于控制組件外觀的對等類與具體平臺相關(guān),使得 AWT 組件總是只有與本機(jī)相關(guān)的外觀。而 Swing 使得程序在一個(gè)平臺上運(yùn)行時(shí)能夠有不同的外觀,用戶可以選擇自己習(xí)慣的外觀。Swing是AWT的擴(kuò)展,它提供了許多新的圖形界面組件。Swing組件以“J”開頭,除了擁有與AWT類似的按鈕( JButton)、標(biāo)簽(JLabel)、復(fù)選框(JCheckBox)、菜單(JMenu)等基本組件外,還增加了一個(gè)豐富的高層組件集合,如表格( JTable) 、樹(JTree ) [9]。:J C o m p o n e n tA b s t r a c t B u t t o nJ C o m b o B o xJ L a b e lJ L i s tJ M e n u B a rJ P a n e lJ P o n p u p M e n uJ S c r o l l B a rJ S c r o I I P a n eJ T e x t C o m p o n e n tJ B u t t o nJ M e n u I t e mJ T o g g l e B u t t o nJ C h e c k B o x M e n u I t e mJ M e n uJ R a d i o B u t t o n M e n u I t e mJ C h e c k B o xJ r a d i o B u t t o nJ E d i t o r P a n eJ T e x t A r e aJ T e x t F i e l dJ T e x t P a n eJ P a s s w o r d F i e l d圖 Swing 組件浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文)8 Swing 組件的簡介(1)MVC(ModelViewController)體系結(jié)構(gòu)前面我們提到,Swing 勝過 AWT 的主要優(yōu)勢在于 MVC 體系結(jié)構(gòu)的普遍使用。在一個(gè) MVC 用戶界面中,存在 3 個(gè)通信對象:模型、視圖和控件。模型是指定的邏輯表示法,視圖是模型的可視化表示法,而控件則指定了如何處理用戶輸入。當(dāng)模型發(fā)生改變時(shí),它會通知所有依賴它的視圖,視圖使用控件指定其相應(yīng)機(jī)制。為了簡化組件的設(shè)計(jì)工作,在 Swing 組件中視圖和控件兩部分合為一體。每個(gè)組件都有一個(gè)相關(guān)的分離模型和它使用的界面(包括視圖和控件) 。比如,按鈕JButton 有一個(gè)存儲其狀態(tài)的分離模型 ButtonModel 對象。組件的模型是自動(dòng)設(shè)置的,例如,一般都使用 JButton 而不是使用 ButtonModel 對象。另外,通過 Model 類的子類或通過實(shí)現(xiàn)適當(dāng)?shù)慕涌冢梢詾榻M件建立自己的模型。用 setModel()方法把數(shù)據(jù)模型與組件聯(lián)系起來。MVC 是現(xiàn)有的編程語言中制作圖形用戶界面的一種通用思想,其思路是把數(shù)據(jù)的內(nèi)容本身和顯示方式分離開,這樣就使得數(shù)據(jù)的顯示更加靈活多樣。比如,某年級各個(gè)班級的學(xué)生人數(shù)是數(shù)據(jù)部分,而顯示方式可以是多種多樣的,既可以采用柱狀圖顯示,也可以采用餅圖顯示,還可以采用直接的數(shù)據(jù)輸出。因此在設(shè)計(jì)時(shí),考慮把數(shù)據(jù)和顯示方式分開,對于實(shí)現(xiàn)多種多樣的顯示是非常有幫助的。(2)可存取性支持所有的 Swing 組件都實(shí)現(xiàn)了 Accessible 接口,提供對可存取性的支持,使得輔助功能如屏幕閱讀器能夠十分方便地從 Swing 組件中得到信息。(3)支持鍵盤操作在 Swing 組件中,使用 JComponent 類的 registerKeyboardAction()方法,能使用戶通過鍵盤操作來替代鼠標(biāo)驅(qū)動(dòng) GUI 上 Swing 組件的相應(yīng)動(dòng)作。有些類還為鍵盤操作提供了更便利的方法,其實(shí)這就相當(dāng)于熱鍵,使得用戶可以只用鍵盤進(jìn)行操作。(4)設(shè)置邊框?qū)?Swing 組件可以設(shè)置一個(gè)或多個(gè)邊框。Swing 中提供了各式各樣的邊框供用戶選用,也能建立組合邊框或自己設(shè)計(jì)邊框。一種空白邊框可以增大組件,同時(shí)協(xié)助布局管理器對容器中的組件進(jìn)行合理的布局。Hibernate 的體系結(jié)構(gòu)如圖 所示。浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文)9A p p l i c a t i o nD a t a b a s eS e s s i o n F a c t o r yT r a n s a c t i o n F a c t o r yC o n n e c t i o n P r o v i d e rS e s s i o nT r a n s a c t i o nJ N D IJ D B CJ T AT r a n s a c t i o n O b j e c t sP e r s i s t e n t O b j e c t s Hibernate 體系結(jié)構(gòu)圖:SessionFactory:針對單個(gè)數(shù)據(jù)庫映射關(guān)系經(jīng)過編譯后的內(nèi)在鏡像,是線程安全的,它是生成Session 的工廠。Session:表示應(yīng)用程序與持久存儲層之間交互操作的一個(gè)單純種對象,此對象生存期很短。其隱藏了JDBC 連接,也是Transaction的工廠。持久對象及集合:帶有持久化狀態(tài)的、具有業(yè)務(wù)功能的單線程對象,此對象生存期很短。這些對象可能是普通的JavaBeans/POJO,唯一特殊的是他們正與(僅僅一個(gè))Session相關(guān)聯(lián)。一旦這個(gè)Session被關(guān)閉,這些對象就會脫離持久化狀態(tài),這樣就可被應(yīng)用程序的任何層自由使用。瞬態(tài)(transient )和脫管(detached )的對象及其集合:那些目前沒有與session關(guān)聯(lián)的持久化類實(shí)例。他們可能是在被應(yīng)用程序?qū)嵗?,尚未進(jìn)行持久化的對象,也可能是因?yàn)閷?shí)例化他們的Session已經(jīng)被關(guān)閉而脫離持久化的對象。事務(wù)Transaction:應(yīng)用程序用來指定原子操作單元范圍的對象,它是單線程了,生命周期很短。Hibernate作為模型 /數(shù)據(jù)訪問層。它通過配置文件((*.)把java對象或持久化對象(Persistent Obeject,PO)映射到數(shù)據(jù)庫中的數(shù)據(jù)表,然后通過操作PO,對數(shù)據(jù)庫中的表進(jìn)行各種操作。浙江工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)說明書(論文)10 Eclipse 的簡介目前Eclipse在系統(tǒng)開發(fā)領(lǐng)域中受到空前關(guān)注,國內(nèi)外許多軟件公司紛紛開始采用Eclipse作為開發(fā)平臺。Eclipse 是一個(gè)開放源代碼的、基于 Java 的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse 附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT) [10]。 Eclipse 的起源和發(fā)展Eclipse的前身是IBM的Visual Age。由于意識到Visual Age存在難以擴(kuò)展、底層技術(shù)較為脆弱、很難與WebSphere Studio軟件集成等諸多問題,進(jìn)一步發(fā)展甚為困難,同時(shí)也面臨包括Symantec 公司的Visual Caf233。、Borland公司的JBuilder 等開發(fā)工具的競爭壓力,IBM決定創(chuàng)建一個(gè)更開放的,并且可以為 IBM其他開發(fā)工具提供支持的一體化開發(fā)平臺。1998年11月,IBM專門成立了一個(gè)項(xiàng)目開發(fā)小組,開始開發(fā)該平臺,2022年新一代開發(fā)平臺誕生,這就是大家所熟悉的Eclipse。2022年11月,IBM做出了一個(gè)重大決定,將Eclipse采用開放源碼的授權(quán)和運(yùn)作模式發(fā)布,以增強(qiáng)業(yè)界對Eclipse的關(guān)注度并加快其推廣應(yīng)用速度。隨后,IBM 于2022年12月向外界宣布,捐贈價(jià)值4千萬美元的Eclipse 源碼給開源社區(qū);成立由成員公司組成的Eclipse協(xié)會(Eclipse Consortium) ,以便支持并促進(jìn)Eclipse開源項(xiàng)目。事實(shí)證明,IBM 的決策非常英明。Eclipse受到廣泛關(guān)注,蜂擁而至的用戶使得其下載服務(wù)器一度阻塞,給業(yè)界帶來了久違的震撼!IBM趁熱打鐵,在EclipseCon