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

正文內(nèi)容

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

2025-07-08 01:30本頁面
  

【正文】 I進(jìn)行正確的判別是由誰來辦理,由自己直接辦理且返回結(jié)果還是交給驅(qū)動(dòng)程序處理后返回結(jié)果。多束式:多束式驅(qū)動(dòng)程序自身不實(shí)行任何的數(shù)據(jù)操作而是用作網(wǎng)絡(luò)通信協(xié)議的一個(gè)界面的遠(yuǎn)程操作。如果應(yīng)用程序?qū)?shù)據(jù)庫處理提出要求,那么該請求就會(huì)發(fā)給ODBC管理器,當(dāng)ODBC管理器根據(jù)請求當(dāng)場實(shí)現(xiàn),如果不行就會(huì)轉(zhuǎn)給多束式驅(qū)動(dòng)程序,此時(shí)多束式驅(qū)動(dòng)程序會(huì)把請求編譯成數(shù)據(jù)庫通信借口能夠明白的方式并且把且該請求交給借口去解決。二、 C3P0連接池C3P0是一個(gè)開源的JDBC連接池,當(dāng)前使用它的開源項(xiàng)目有Hibernate,Spring。C3P0與一般的POOL是相似的,要對數(shù)據(jù)庫連接池進(jìn)行管理都是要靠阻塞機(jī)制的,如果連接池當(dāng)中沒有能用的connection則就會(huì)被阻塞,通常是經(jīng)過wait(),等到連接池中有可用的connection,這時(shí)候就會(huì)經(jīng)過notify()喚醒[10]。最常用的是第一種。三、 TustCP 連接池TustCP是對已有的連接池進(jìn)行研究學(xué)習(xí)的基礎(chǔ)之上,自己所編寫的一個(gè)簡單的連接池。import 。import 。import 。import 。//數(shù)據(jù)庫ID private static String username=root。//建立一個(gè)新的雙向循環(huán)鏈表 private static LinkedList TustDataSource=new LinkedList()。 static{ try {//加載MySQL數(shù)據(jù)庫的驅(qū)動(dòng)類 ()。 } for(int i=0。i++){ try {//建立與遠(yuǎn)程數(shù)據(jù)庫的連接 Connection conn=(url, username, password)。//如果驅(qū)動(dòng)類加載失敗,將捕獲異常 } catch (Exception e) { // TODO Autogenerated catch block ()。 } public static void putConnection(Connection conn){ (conn)。因此在本文只需要建立一個(gè)簡單的數(shù)據(jù)庫。 show databases。結(jié)果如圖:圖62 創(chuàng)建表數(shù)據(jù)輸入之后“學(xué)生”表student創(chuàng)建成功如圖:圖63 學(xué)生表student第七章 基于反射機(jī)制框架的設(shè)計(jì)與實(shí)現(xiàn)Spring中AOP就是基于反射機(jī)制來實(shí)現(xiàn)的,在這里我們舉個(gè)例子來說明一下AOP其中的一個(gè)功能。這個(gè)AOP功能是對反射機(jī)制的完美應(yīng)用。第一節(jié) 框架的總體設(shè)計(jì)圖71 反射機(jī)制框架包結(jié)構(gòu)反射機(jī)制框架使用MyEclipse10開發(fā)完成,如圖71所示,反射機(jī)制框架一共分為2個(gè)包。這里我只給出在方法之前和在方法之后執(zhí)行的兩種方法。import 。 void afterMethod(Method method)。import 。 public void afterMethod(Method method) { // TODO Autogenerated method stub (TUSTCP連接完成!)。 (() + running time of + (endTime beginTime))。 beginTime = ()。import 。public class Tustcpcallclass implements Tustcpcallinterface{ public Connection getConnection(){ return ()。在這個(gè)方法中與運(yùn)用上面兩種方法就是通過共同的借口來實(shí)現(xiàn)的。 final Advice advice=new MyAdvice()。 Object retVal = (target, args)。 (() + running time of + (endTime beginTime))。*/ (method)。//調(diào)用方法; (method)。 }上述的這個(gè)方法就是利用了反射的機(jī)制的原理,這個(gè)方法可以封裝起來,里面的內(nèi)容任何時(shí)候都不用修改,如果實(shí)現(xiàn)的方法有所改變或者想使用一個(gè)新的連接池(在本文中指TustCP連接池)。第三節(jié) 代碼測試現(xiàn)在我們測試上述代碼的是否可行,在本文中對自己所寫的反射機(jī)制框架進(jìn)行了擴(kuò)展。程序中給出了3中連接方式,JDBC、C3P0、和TustCP。代碼如下:package 。import 。import 。import 。import 。import 。import 。import 。 private static HttpSession session。 private static ComboPooledDataSource C3P0datasource=new ComboPooledDataSource()。 session=()。 (root)。 try { ()。 } } public Connection getConnection() throws Exception { ()。 if(JDBC.equals(selectedconnection)){ ()。} else if(C3P0.equals(selectedconnection)){ return ()。 return currentgetConnection().getConnection()。 } private Tustcpcallinterface currentgetConnection() { final Tustcpcallclass target=new Tustcpcallclass()。 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 = ()。 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)。 } }。具體代碼如下:package 。import 。import 。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,具體代碼如下:% 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ù)庫方式整個(gè)程序具體實(shí)現(xiàn)過程如圖73所示:用戶執(zhí)行選擇連接方式(JDBC、C3P0、TustCP)選擇JDBC、C3P0 選擇TustCP通過接口調(diào)用圖73 程序?qū)崿F(xiàn)過程此圖說明當(dāng)用戶選擇連接數(shù)據(jù)庫的方式之后,;當(dāng)選擇我自己所寫的連接池TustCP的時(shí)候,這個(gè)連接池工作流程是:。在文章中,對當(dāng)今軟構(gòu)件重用程度低,沒有辦法適應(yīng)動(dòng)態(tài)開放的運(yùn)行環(huán)境以及多變的用戶需要的這類問題,基于反射機(jī)制對框架進(jìn)行研究,最終實(shí)現(xiàn)一個(gè)輕量級的框架以此來適應(yīng)小的系統(tǒng)。在中小型WEB應(yīng)用中,采用輕量級框架,符合簡單化編程的精神,降低了技術(shù)難度,同時(shí)輕量級框架不用使用高價(jià)商業(yè)服務(wù)器,因此開發(fā)平臺(tái)的成本大大的降低了。第二節(jié) 未來展望本文主要對基于反射機(jī)制對框架進(jìn)行研究,實(shí)現(xiàn)一個(gè)輕量級的框架以此來適應(yīng)小的系統(tǒng)。希望有機(jī)會(huì)在以后的時(shí)間再繼續(xù)進(jìn)行深入細(xì)致的研究,設(shè)計(jì)完善框架,進(jìn)一步研究不同框架間的關(guān)系。 Kulesza,Clovis Fernandes. A reference architecture for organizing the internal structure of metadatabased frameworks[J]. The Journal of Systems and Software,:45146.[15] Thomas W252。這篇畢業(yè)論文的完成是在我的導(dǎo)師李玉峰老師的細(xì)心指導(dǎo)下進(jìn)行的。從論文的選題到資料的搜集直至最后論文修改的整個(gè)過程中,花費(fèi)了李老師很多的寶貴時(shí)間和精力,在此向李老師表示衷心地感謝!此外,我還要感謝所有理學(xué)院的老師們,謝謝您們這幾年來對我的教導(dǎo)。您們嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,開拓進(jìn)取的精神和高度的責(zé)任心都將使學(xué)生受益終生。
點(diǎn)擊復(fù)制文檔內(nèi)容
物理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1