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

正文內(nèi)容

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

2025-08-05 16:11 上一頁面

下一頁面
 

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