【正文】
兩種方法。 import 。 } 上述的這個方法就是利用了反射的機制的原理,這個方法可以封裝起來,里面的內(nèi)容任何時候都不用修改,如果實現(xiàn)的方法有所改變或者想使用一個新的連接池(在本文中指 TustCP 連接池)的時候只需要修改 與 里面的程序即可。 import 。 selectedconnection=(String)(selectedconnection)。//執(zhí)行它的 afterMethod 方法; return retVal。 天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 25 import 。 } (數(shù)據(jù)輸出完成 )。} labelposition=left name=selectedconnection/ s:submit name=submit value=提交 method=find_name/ /s:form /body /html 執(zhí)行后的效果如圖所示: 圖 72 選擇連接數(shù)據(jù)庫方式 天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 28 整個程序具體實現(xiàn)過程如圖 73 所示: 圖 73 程序?qū)崿F(xiàn)過程 此圖說明當用戶選擇連接數(shù)據(jù)庫的方式之后, 會執(zhí)行其內(nèi)部對應(yīng)的方法,當選擇的方法是 JDBC 或者 C3P0 的時候則會在這行對應(yīng)程序后由 輸出對應(yīng)數(shù)據(jù)庫內(nèi)容;當選擇我自己所寫的連接池 TustCP 的時候,這個連接池工作流程是: 文件會通過 調(diào)我們之前所編譯的方法,這個方法通過會共同的接口來調(diào)用 和 這兩個文件, 這個文件運行后會執(zhí)行 文件最后由 輸出對應(yīng)數(shù)據(jù)庫內(nèi)容。 Statement st=()。 import 。 return retVal。 (10112106)。 import 。*/ (method)。 beginTime = ()。在本文中我根據(jù)反射機制,參考 AOP 框架實現(xiàn)一個輕量級的框架。 } catch (ClassNotFoundException e1) { // TODO Autogenerated catch block ()。 天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 15 最常用的是第一種。 ( 6)在服務(wù)器維護或者停止的時段,要釋放數(shù)據(jù)庫連接池中的對象以及所有天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 14 連接。這個線程對于這個連接使用完成之后就會把他送回到連接池當中,回到連接池的連接就 可以被其他的線程使用了。 ( 6)體系結(jié)構(gòu)中立: Java 就能夠在任何處理器上運行,只需要安裝 Java 運轉(zhuǎn)系統(tǒng)。 第四節(jié) Java 優(yōu)點 Java 是解釋執(zhí)行的高級編程語言,他的特點是平臺無關(guān)性、簡單性、面向?qū)ο?、健壯性、多線程、自動內(nèi)存管理。 ( 5) ORM: Spring 框架為多個 ORM 框架,他提供了一個 ORM 對象關(guān)系的工具。利用基本的 JavaBean 來實現(xiàn)之前只可由 EJB 實現(xiàn)的工作,并且提供了許多企業(yè)應(yīng)用的功能。通常會被應(yīng)用在一些大型數(shù)據(jù)庫的建立之中。 MyEclipse 構(gòu)造上的模塊化,可以是我們對任何一個模塊進行獨自擴大及升級而且不影響其他模塊。在確定框架之后,軟件體系結(jié)構(gòu)也隨著確定了,對于同一個軟件體系結(jié)構(gòu)可以通過各種框架來實現(xiàn)。第三,模式制約了解決方案空間。當然,他們的作品中描述的模式并非他們自己發(fā)明的。 天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 2 第二章 相關(guān)概念以及概念之間的關(guān)系 第一節(jié) 反射機制 Java 反射機制在運行時,對任何一個類都可以了解此類的全部屬性及方法;對任意一個對象,都能夠調(diào)出應(yīng)用它的一種方法及屬性;這類動態(tài)獲得信息和以動態(tài)方式去調(diào)用目標的功能叫做 Java 語言反射機制 [1]。由于開源軟件興起,框架更是層出不窮。 Java 反射機制是在運行狀態(tài)當中,對于任何一個類,都可以知道這個類的所有屬性及方法;對于任何一個對象,都能夠調(diào)用它的一個方法及屬性;這種動態(tài)獲取信息和動態(tài)調(diào)用對象方法的功能稱為 Java 語言的反射機制。 The function of accessing to information dynamically and calling object method dynamically is called reflection mechanism of java language. Actually, reflection is a program can check the information on their own. JAVA reflection mechanism can check the properties of certain methods in information, and invoke dynamically. This makes it possible to write a very flexible program. For example, someone wants to copy an object attribute with the same name as the data to another, he can use reflection, without needing to specify the name of each attribute, only need to get information from a dynamic class, and then determine whether the same property name on it . This article is based on researching the reflection mechanism framework, achieving a lightweight framework in order to adapt to the small system. Application of Lightweight J2EE is simplified by classic J2EE, On the basis of retaining the classic application architecture, good scalability, and good maintainability, it Simplifies application development and reduces application costs. Key words: Reflection??蚣芫褪沁@種思想 產(chǎn)物。 “輕量級”包含兩個概念: 對編程模型和更具響應(yīng)能力的容器簡化,對傳統(tǒng) J2EE API 有關(guān)不必要的復(fù)雜性及限制進行清除?!敖鉀Q方案”表達了設(shè)計組成部分以及他們之間的合作方法和 各自的任務(wù)。更加詳細的說,要包括任務(wù)流、架構(gòu)元件、聯(lián)結(jié)器。 天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 6 第三章 系統(tǒng)開發(fā)環(huán)境技術(shù)介紹 第一節(jié) MyEclipse 介紹 MyEclipse 是一個功能強大支持也非常的普遍,用于開發(fā) JAVA、 J2EE 十分杰出的 Eclipse 的插件集合,對支持各類開源品特別的擅長。因此,數(shù)據(jù)庫技術(shù)作為信息系統(tǒng)核心和基礎(chǔ)得到愈來愈多的應(yīng)用,從小型單項事務(wù)處理天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 7 到大型信息系統(tǒng) (OnLine Analysis Processing,OLAP),從 OLTP( Online Transaction Processing, 聯(lián)機事務(wù)處理)到 OLAP (OnLine Analysis Processing, 聯(lián)機分析處理 );從一般企業(yè)管理到計算機輔助設(shè)計與制造 (CAD/CAM)、計算機集成制造系統(tǒng) (CIMS)、電子政務(wù) (eGovernment)、電子商務(wù) (eCommerce)、地理信息系統(tǒng) (GIS)等 [8],越來越多新的應(yīng)用領(lǐng)域采用數(shù)據(jù)庫技術(shù)來實現(xiàn)數(shù)據(jù)的儲存和處理工作。 Struts2是以 WebWork 為核心,選用 WebWork 設(shè)計想法,而且選用攔截器的機制來解決客戶要求,如此的設(shè)計也讓業(yè)務(wù)邏輯控制器能夠和 ServletAPI 徹底擺脫開,因此Struts2 能夠當成 是 WebWork 更新之后的產(chǎn)物。重要構(gòu)件是BeanFactory,是以工廠形式來實現(xiàn)的,利用 IoC 模式將應(yīng)用程序的配置及依賴性規(guī)范和實際應(yīng)用程序代碼隔開??梢允褂盟娲郧暗?JDBC 訪問數(shù)據(jù) [13]。由于在對象當中封裝了其變量和相對的方法,因此完成模塊化與信息的隱蔽;對于類就有所不同了,類供應(yīng)了一類對象原來的模型而且經(jīng)過繼承機制,父類提供的方法可以被子類使用,這就完成了代碼的復(fù)用。 天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 12 第五章 框架與數(shù)據(jù)庫連接工具 第一節(jié) JDBC 介紹 為了實現(xiàn)應(yīng)用程序?qū)?shù)據(jù)庫的訪問, SUN 公司推出了 JDBC( Java Database Connectivity, Java 數(shù)據(jù)庫連接),它由一些 Java 語言編寫的類和界面組成,并且定義了 Java 語言與各種數(shù)據(jù)庫之間的編程接口。而連接池不會有這些問題,他會將性能的使用最大化,而且他還會控制資源的利用使之在一定的范圍之內(nèi),假如超過了這個范圍應(yīng)用程序就不僅是變慢了而是直接崩潰。多束式驅(qū)動程序主要負責的是在程序與數(shù)據(jù)庫引擎之間傳達指令與數(shù)據(jù)。 import 。因此在本文只需要建立一個簡單的數(shù)據(jù)庫。 } : package 。代碼如下: private Tustcpcallinterface currentgetConnection() { final Tustcpcallclass target=new Tustcpcallclass()。如果選擇 TustCP 就可以對我們所設(shè)計的方法進行檢驗。 public class ConnectionGetandClose { private static HttpServletRequest request。 } else throw new Exception(無此連接 )。 else if(C3P0.equals(selectedconnection)){ ()。 public String getSelectedconnection() { return selectedconnection。 } } 天津科技大學 20xx 屆本科生畢業(yè)設(shè)計 26 jsp 文件轉(zhuǎn)換成 struts2,具體代碼如下: ?xml version= encoding=UTF8? webapp filter filternamestruts2/filtername filterclass/filterclass /filter filtermapping filternamestruts2/filtername urlpattern/*/urlpattern /filtermapping welefilelist welefile/welefile /welefilelist /webapp 文件為當網(wǎng)頁登錄之后所需要顯示的頁面內(nèi)容,本程序就是執(zhí)行 文件。JDBC39。 } public String find_name()throws Exception{ (selectedconnection)。 } else throw new Exception(無此連接 )。 final Advice advice=new MyAdvice()。 private String selectedconnection。 import 。 Object proxy3 = (//新創(chuàng)建一個實例; ().getClassLoader(),//類加裁器 /*new Class[]{},*/ ().getInterfaces(),//要實現(xiàn)的接口; new InvocationHandler(){ public Object invoke(Object proxy, Method method,