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