freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于反射機(jī)制的框架研究與實(shí)現(xiàn)畢業(yè)論文(文件)

 

【正文】 需要連接池的時(shí)候 ,而在線程需要一個(gè)連接,那么程序只能為此創(chuàng)建一個(gè)新的連接,使用用戶應(yīng)用資源的時(shí)候就會(huì)產(chǎn)生十分高的浪費(fèi)甚至導(dǎo)致由于過(guò)載而產(chǎn)生異常。而連接池不會(huì)有這些問(wèn)題,他會(huì)將性能的使用最大化,而且他還會(huì)控制資源的利用使之在一定的范圍之內(nèi),假如超過(guò)了這個(gè)范圍應(yīng)用程序就不僅是變慢了而是直接崩潰。 ( 4)存取數(shù)據(jù)庫(kù)。 第三節(jié) 幾種常見(jiàn) 的連接池 一、 ODBC ODBC 其實(shí)就是開(kāi)放式數(shù)據(jù)庫(kù),是由微軟公司提出來(lái)的一種使用 SQL 應(yīng)用程序接口。有用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)操作的時(shí)候,應(yīng)用程序會(huì)給 ODBC 管理器傳遞一個(gè) ODBC 的函數(shù)讓其調(diào)用 。多束式驅(qū)動(dòng)程序主要負(fù)責(zé)的是在程序與數(shù)據(jù)庫(kù)引擎之間傳達(dá)指令與數(shù)據(jù)。 C3P0 與 DBCP 的區(qū)別: C3P0 與 DBCP 的最大的區(qū)別就是有無(wú)自動(dòng)回收空閑連接的功能, DBCP 沒(méi)有此項(xiàng)功能是而 C3P0 是有的。不管用什么方式得到 DataSource, C3P0 都會(huì)供應(yīng)一個(gè)叫做 的文件以此去配置此數(shù)據(jù)源。 import 。 import 。 //建立一個(gè)新的雙向循環(huán)鏈表 private static LinkedList TustDataSource=new LinkedList()。 } for(int i=0。 //如果驅(qū)動(dòng)類加載失敗,將捕獲異常 } catch (Exception e) { // TODO Autogenerated catch block ()。因此在本文只需要建立一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)。 結(jié)果如圖: 圖 62 創(chuàng)建表 數(shù)據(jù)輸入之后“學(xué)生”表 student 創(chuàng)建成功如圖: 圖 63 學(xué)生 表 student 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 19 第七章 基于反射機(jī)制框架的設(shè)計(jì)與實(shí)現(xiàn) Spring 中 AOP 就是基于反射機(jī)制來(lái)實(shí)現(xiàn)的,在這里我們舉個(gè)例子來(lái)說(shuō)明一下 AOP 其中的一個(gè)功能。 第一節(jié) 框架的總體設(shè)計(jì) 圖 71 反射機(jī)制框架包結(jié)構(gòu) 反射機(jī)制框架使用 MyEclipse10 開(kāi)發(fā)完成,如圖 71 所示,反射機(jī)制框架一共分為 2 個(gè)包。代碼下: package 。 } : package 。 long endTime = ()。 } } 這個(gè)代碼的功能是計(jì)算 TustCP 連接池在連接數(shù)據(jù)庫(kù)時(shí)所需要的時(shí)間。 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 21 import 。代碼如下: private Tustcpcallinterface currentgetConnection() { final Tustcpcallclass target=new Tustcpcallclass()。 long endTime = ()。//執(zhí)行它的 beforeMethod方法; Object retVal = (target, args)。這就是反射機(jī)制的優(yōu)勢(shì),可以在方法之外修改所要實(shí)現(xiàn)的方法,而一般的方法沒(méi)有這個(gè)功能。如果選擇 TustCP 就可以對(duì)我們所設(shè)計(jì)的方法進(jìn)行檢驗(yàn)。 import 。 import 。 import 。 public class ConnectionGetandClose { private static HttpServletRequest request。 static { request=()。 try { 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 23 ()。 if(JDBC.equals(selectedconnection)){ ()。 } else throw new Exception(無(wú)此連接 )。 Object retVal = (target, args)。*/ 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 24 (method)。 } } )。 else if(C3P0.equals(selectedconnection)){ ()。Selectedconnection 即表示選擇的方式。 import 。 public class ConnectionName { private String selectedconnection。 public String getSelectedconnection() { return selectedconnection。 session=()。 ResultSet rs=(select * from student)。 ()。 } } 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 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 文件為當(dāng)網(wǎng)頁(yè)登錄之后所需要顯示的頁(yè)面內(nèi)容,本程序就是執(zhí)行 文件。C3P039。 選擇 JDBC 時(shí),執(zhí)行結(jié)果頁(yè)面: 圖 74 選擇 JDBC 執(zhí)行結(jié)果 調(diào)用 選擇 JDBC、 C3P0 通過(guò)接口調(diào)用 選擇TustCP 用戶執(zhí)行 選擇連接方式( JDBC、 C3P0、TustCP) ConnectionGetan 執(zhí)行對(duì)應(yīng)方法 ConnectionN 輸出對(duì)應(yīng)數(shù)據(jù)庫(kù)內(nèi)容 ConnectionGet先調(diào)用反射框架的方法 和 文件 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 29 選擇 C3P0 時(shí),執(zhí)行結(jié)果頁(yè)面: 圖 75 選擇 C3P0 執(zhí)行結(jié)果 選擇 TustCP 時(shí),執(zhí)行結(jié)果頁(yè)面: 圖 76 選擇 TustCP 執(zhí)行結(jié)果 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 30 第八章 論文總 結(jié)與展望 第一節(jié) 本文總結(jié) 。TUSTCP39。JDBC39。 (conn)。 while(()){ ((1) + \t + (2)+ \t + (3) + \t)。 Connection conn=()。 } public String find_name()throws Exception{ (selectedconnection)。 private static HttpSession session。 import 。 import 。 } else throw new Exception(無(wú)此連接 )。 } public void closeConnection(Connection conn)throws Exception{ selectedconnection=(String)(selectedconnection)。//調(diào)用方法; (method)。 (() + running time of + (endTime beginTime))。 final Advice advice=new MyAdvice()。 } else if(TUSTCP.equals(selectedconnection)){ //return ()。 } } public Connection getConnection() throws Exception { ()。 (jdbc: (root)。 private String selectedconnection。 import 。 import 。 import 。 import 。這個(gè)設(shè)計(jì)的功能是用來(lái)選擇哪種連接方式對(duì)客戶端和數(shù)據(jù)庫(kù)進(jìn)行連接。//執(zhí)行它的 afterMethod方法; return retVal。 return retVal。 Object proxy3 = (//新創(chuàng)建一個(gè)實(shí)例; ().getClassLoader(),//類加裁器 /*new Class[]{},*/ ().getInterfaces(),//要實(shí)現(xiàn)的接口; new InvocationHandler(){ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { /*long beginTime = ()。 } } 現(xiàn)在我們寫一個(gè)方法用到上面的兩個(gè)功能。代碼的功能就是返回到 TustCP 類 代碼如下: package 。 } public void beforeMethod(Method method) { // TODO Autogenerated method stub (TUSTCP連接開(kāi)始! )。 public class MyAdvice implements Advice { long beginTime = 0。 public interface Advice { void beforeMethod(Method method)。 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計(jì) 20 第二節(jié) 具體代碼介紹 一般來(lái)說(shuō) Adcive 這個(gè)接口有四個(gè)方法,在異常里面執(zhí)行的方法、在方法之前執(zhí)行的方法、在方法之后執(zhí)行的方法以及在方法前后執(zhí)行的方法。這個(gè) AOP 功能是對(duì)反射機(jī)制的完美應(yīng)用。 show databases。 } public static void putConnection(Connection conn){ (conn)。i++){ try { //建立與遠(yuǎn)程數(shù)據(jù)庫(kù)的連接 Connection conn=(url, username, password)。 static{ try { //加載 MySQL 數(shù)據(jù)庫(kù) 的驅(qū)動(dòng)類 ()。 //定義公開(kāi)類 TustCP public class TustCP { //定義 MySQL 數(shù)據(jù)庫(kù) url private static String url=jdbc: //數(shù)據(jù)庫(kù) ID private static String username=root。 import 。具體代碼如下: package 。 使用 C3P0 有三種方式 : ( 1)直接初始化與配置 ComboPooledDataSource Bean; ( 2)使用 DataSources Factory; ( 3)經(jīng)過(guò) PoolBackedDataSource 并設(shè)立 ConectionPoolDataSource 來(lái)創(chuàng)建。之后接口會(huì)把這個(gè)請(qǐng)求通過(guò)網(wǎng)絡(luò)傳給服務(wù)器數(shù)據(jù)引擎,當(dāng)服務(wù)器解決好這個(gè)請(qǐng)求之后會(huì)把結(jié)果傳給數(shù)據(jù)庫(kù)通信接口,這時(shí)通信接口回把最后的結(jié)果發(fā)給多束式驅(qū)動(dòng)程序,由多束式驅(qū)動(dòng)程序發(fā)給應(yīng)用程序。我們可以看出,單束式驅(qū)動(dòng)程序自身就是數(shù)據(jù)庫(kù)引擎,單束式驅(qū)動(dòng)程序可以直接對(duì)數(shù)據(jù)庫(kù)完成操作,雖然此數(shù)據(jù)庫(kù)可以在網(wǎng)絡(luò)的任意的一個(gè)地方。 在結(jié)構(gòu)上區(qū)分 ODBC 分為兩種,單束式和多束式。如過(guò)實(shí)際空閑連接數(shù)大于初始空閑連接數(shù)的時(shí),連接就會(huì)被釋放)。 ( 2)根據(jù)先前指定的參數(shù)創(chuàng)立初始數(shù)目的數(shù)據(jù)庫(kù)連接(即閑置連接數(shù))。而且每一個(gè)連接都會(huì)對(duì)其程序和服務(wù)器的資源產(chǎn)生一些影響及限制。對(duì)于連接可以循環(huán)使用的方法,就可以大大的避免浪費(fèi)時(shí)間和開(kāi)銷的弊處。 實(shí)際上當(dāng)線程需要一個(gè)連接的時(shí)候,這時(shí)候就會(huì)從連接池中尋找一個(gè)連接。只需 要通過(guò) JDBC API 編寫一個(gè)程序就可以輕松的訪問(wèn) Oracle、 Informix 或者 Sybase 等各種各樣的不盡相同的數(shù)據(jù)庫(kù)。 ( 10) 動(dòng)態(tài)性: Java 的設(shè)計(jì)使得它適合于開(kāi)發(fā)環(huán)境。與此同時(shí) Java 數(shù)據(jù)庫(kù)也能夠與不同的平臺(tái)接口實(shí)現(xiàn)。 Java 一切內(nèi)部的訪問(wèn)都要經(jīng)過(guò)對(duì)象的實(shí)例化去完成,因
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1