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

正文內(nèi)容

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

2025-07-31 16:11本頁面
  

【正文】 ,將自己的程序連接到自己建立的數(shù)據(jù)庫系統(tǒng)當(dāng)中, ODBC 的優(yōu)勢其實就是以統(tǒng)一方式處理全部數(shù)據(jù)庫,而他自己程序與數(shù)據(jù)庫沒有關(guān)系。 單束式:單束式驅(qū)動程序類似中介驅(qū)動程序數(shù)據(jù)提供統(tǒng)一的一個數(shù)據(jù)訪問方法,并且單束式驅(qū)動程序在應(yīng)用程序與數(shù)據(jù)庫之中 [15]。之后會讓 ODBCAPI 進行正確的判別是由誰來辦理,由自己直接辦理且返回結(jié)果還是交給驅(qū)動程序處理后返回結(jié)果。 多束式:多束式驅(qū)動程序自身不實行任何的數(shù)據(jù)操作而是用作網(wǎng)絡(luò)通信協(xié)議的一個界面的遠程操作。如果應(yīng)用程序?qū)?shù)據(jù)庫處理提出要求,那么該請求就會發(fā)給ODBC 管理器,當(dāng) ODBC 管理器根據(jù)請求當(dāng)場實現(xiàn),如果不行就會轉(zhuǎn)給多束 式驅(qū)動程序,此時多束式驅(qū)動程序會把請求編譯成數(shù)據(jù)庫通信借口能夠明白的方式并且把且該請求交給借口去解決。 二、 C3P0 連接池 C3P0 是一個開源的 JDBC 連接池,當(dāng)前使用它的開源項目有 Hibernate,Spring。 C3P0 與一般的 POOL 是相似的,要對數(shù)據(jù)庫連接池進行管理都是要靠阻塞機制的,如果連接池當(dāng)中沒有能用的 connection 則就會被阻塞,通常是經(jīng)過 wait(),等到連接池中有可用的 connection,這時候就會經(jīng)過 notify()喚醒 [10]。 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 15 最常用的是第一種。 三、 TustCP 連接池 TustCP 是對已有的連接池進行研究學(xué)習(xí)的基礎(chǔ)之上,自己所編寫的一個簡單的連接池。 import 。 import 。 import 。 import 。 //數(shù)據(jù)庫密碼 private static String password=10112106。 private static int maxconnection=20。 } catch (ClassNotFoundException e1) { // TODO Autogenerated catch block ()。imaxconnection。 (conn)。 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 16 } } } //把鏈表中的第一個節(jié)點移動到鏈表結(jié)尾 public static Connection getConnection(){ return (Connection)()。 } } 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 17 第六章 建立數(shù)據(jù)庫 本文是對基于反射機制框架進行研究,所以數(shù)據(jù)庫在本文中只起到一個檢驗框架正確性的作用。 第一節(jié) 數(shù)據(jù)庫表的結(jié)構(gòu) 數(shù) 據(jù)庫表的結(jié)構(gòu)如下圖: 一個“學(xué)生”表 student 表 61 學(xué)生信息 表 字段 類型 長度 備注 Sno char 9 學(xué)號 Sname char 20 姓名 Ssex char 2 性別 Sage smallint 年齡 Sdept char 20 所在系 第二節(jié) 創(chuàng)建數(shù)據(jù)庫部分代碼及結(jié)果 一、 創(chuàng)建數(shù)據(jù)庫 代碼部分: create database lml。 結(jié)果如圖: 圖 61 已創(chuàng)建 lml 數(shù)據(jù)庫 代碼部分: use lml; Create table student (Sno char(9) primary key, /*Sno 是主碼 */ Sname char(20) unique, /*Sname 取唯一值 */ 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 18 Ssex char(2), Sage smallint, Sdept char(20) )。假如有一個日志的請求,利用 AOP 我們就可以不用修改程序中任何的代碼,就能夠?qū)⑦@個請求加到原來的程序當(dāng)中,當(dāng)然如果你想把這個日志刪除掉也同樣不用修改任何的程序。在本文中我根據(jù)反射機制,參考 AOP 框架實現(xiàn)一個輕量級的框架。在 , 與 是程序中兩個接口,而 與 分別是對 與 這兩個接口的實現(xiàn)方法。這里我只給出在方法之前和在方法之后執(zhí)行的兩種方法。 import 。 void afterMethod(Method method)。 import 。 public void afterMethod(Method method) { // TODO Autogenerated method stub (TUSTCP連接完成! )。 (() + running time of + (endTime beginTime))。 beginTime = ()。 是對 這個接口的實現(xiàn)。 import 。 public class Tustcpcallclass implements Tustcpcallinterface{ public Connection getConnection(){ return ()。在這個方法中與運用上面兩種方法就是通過共同的借口來實現(xiàn)的。 final Advice advice=new MyAdvice()。 Object retVal = (target, args)。 (() + running time of + (endTime beginTime))。*/ (method)。//調(diào)用方法; (method)。 } 上述的這個方法就是利用了反射的機制的原理,這個方法可以封裝起來,里面的內(nèi)容任何時候都不用修改,如果實現(xiàn)的方法有所改變或者想使用一個新的連接池(在本文中指 TustCP 連接池)的時候只需要修改 與 里面的程序即可。 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 22 第三節(jié) 代碼測試 現(xiàn)在我們測試上述代碼的是否可行,在本文中對自己所寫的反射機制框架進行了擴展,設(shè)計出完成的 java 文件 。程序中給出了 3 中連接方式, JDBC、 C3P0、 和 TustCP。 代碼如下 : package 。 import 。 import 。 import 。 import 。 import 。 import 。 import 。 private static HttpSession session。 private static ComboPooledDataSource C3P0datasource=new ComboPooledDataSource()。 session=()。 (10112106)。 } catch (Exception e) { // TODO Autogenerated catch block ()。 selectedconnection=(String)(selectedconnection)。 return (jdbc:} else if(C3P0.equals(selectedconnection)){ return ()。 return currentgetConnection().getConnection()。 } private Tustcpcallinterface currentgetConnection() { final Tustcpcallclass target=new Tustcpcallclass()。 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 = ()。 long endTime = ()。 return retVal。//執(zhí)行它的 beforeMethod 方法; Object retVal = (target, args)。//執(zhí)行它的 afterMethod 方法; return retVal。 return (Tustcpcallinterface)proxy3。 if(JDBC.equals(selectedconnection)) ()。 } else if(TUSTCP.equals(selectedconnection)){ (conn)。 } } 文件是對連接數(shù)據(jù)庫成功之后數(shù)據(jù)庫內(nèi)容的顯示。 具體代碼如下: package 。 import 。 import 。 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 25 import 。 private static HttpServletRequest request。 private static ConnectionGetandClose connectionutil=new ConnectionGetandClose()。 } public void setSelectedconnection(String selectedconnection) { = selectedconnection。 request=()。 (selectedconnection, selectedconnection)。 Statement st=()。 (開始輸出數(shù)據(jù) )。 } (數(shù)據(jù)輸出完成 )。 ()。 return success。具體代碼如下: ?xml version= encoding=UTF8 ? !DOCTYPE struts PUBLIC //Apache Software Foundation//DTD Struts Configuration struts constant name= value=UTF8/ package name=user extends=strutsdefault action name=action_connectionname class= result name=success/WEBINF/page//result result name=error/WEBINF/page//result result name=login/result /action /package /struts 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 27 是一個對選擇方式的顯示頁面,具體代碼如下: % page language=java import=.* pageEncoding=UTF8% % taglib prefix=s uri=/strutstags % html body s:form name=inputdata action=action_connectionname s:radio label=請選擇連接方式 list={39。,39。,39。} labelposition=left name=selectedconnection/ s:submit name=submit value=提交 method=find_name/ /s:form /body /html 執(zhí)行后的效果如圖所示: 圖 72 選擇連接數(shù)據(jù)庫方式 天津科技大學(xué) 20xx 屆本科生畢業(yè)設(shè)計 28 整個程序具體實現(xiàn)過程如圖 73 所示: 圖 73 程序?qū)崿F(xiàn)過程 此圖說明當(dāng)用戶選擇連接數(shù)據(jù)庫的方式之后, 會執(zhí)行其內(nèi)部對應(yīng)的方法,當(dāng)選擇的方法是 JDBC 或者 C3P0 的時候則會在這行對應(yīng)程序后由 輸出對應(yīng)數(shù)據(jù)庫內(nèi)容;當(dāng)選擇我自己所寫的連接池 TustCP 的時候,這個連接池工作流程是: 文件會通過 調(diào)我們之前所編譯的方法,這個方法通過會共同的接口來調(diào)用 和 這兩個文件, 這個文件運行后會執(zhí)行 文件最后由 輸出對應(yīng)數(shù)據(jù)庫
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1