首頁 考試吧論壇 Exam8視線 考試商城 網(wǎng)絡(luò)課程 模擬考試 考友錄 實(shí)用文檔 求職招聘 論文下載
2011中考 | 2011高考 | 2012考研 | 考研培訓(xùn) | 在職研 | 自學(xué)考試 | 成人高考 | 法律碩士 | MBA考試
MPA考試 | 中科院
四六級(jí) | 職稱英語 | 商務(wù)英語 | 公共英語 | 托福 | 雅思 | 專四專八 | 口譯筆譯 | 博思 | GRE GMAT
新概念英語 | 成人英語三級(jí) | 申碩英語 | 攻碩英語 | 職稱日語 | 日語學(xué)習(xí) | 法語 | 德語 | 韓語
計(jì)算機(jī)等級(jí)考試 | 軟件水平考試 | 職稱計(jì)算機(jī) | 微軟認(rèn)證 | 思科認(rèn)證 | Oracle認(rèn)證 | Linux認(rèn)證
華為認(rèn)證 | Java認(rèn)證
公務(wù)員 | 報(bào)關(guān)員 | 銀行從業(yè)資格 | 證券從業(yè)資格 | 期貨從業(yè)資格 | 司法考試 | 法律顧問 | 導(dǎo)游資格
報(bào)檢員 | 教師資格 | 社會(huì)工作者 | 外銷員 | 國際商務(wù)師 | 跟單員 | 單證員 | 物流師 | 價(jià)格鑒證師
人力資源 | 管理咨詢師考試 | 秘書資格 | 心理咨詢師考試 | 出版專業(yè)資格 | 廣告師職業(yè)水平
駕駛員 | 網(wǎng)絡(luò)編輯
衛(wèi)生資格 | 執(zhí)業(yè)醫(yī)師 | 執(zhí)業(yè)藥師 | 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格考試會(huì)計(jì)證) | 經(jīng)濟(jì)師 | 會(huì)計(jì)職稱 | 注冊(cè)會(huì)計(jì)師 | 審計(jì)師 | 注冊(cè)稅務(wù)師
注冊(cè)資產(chǎn)評(píng)估師 | 高級(jí)會(huì)計(jì)師 | ACCA | 統(tǒng)計(jì)師 | 精算師 | 理財(cái)規(guī)劃師 | 國際內(nèi)審師
一級(jí)建造師 | 二級(jí)建造師 | 造價(jià)工程師 | 造價(jià)員 | 咨詢工程師 | 監(jiān)理工程師 | 安全工程師
質(zhì)量工程師 | 物業(yè)管理師 | 招標(biāo)師 | 結(jié)構(gòu)工程師 | 建筑師 | 房地產(chǎn)估價(jià)師 | 土地估價(jià)師 | 巖土師
設(shè)備監(jiān)理師 | 房地產(chǎn)經(jīng)紀(jì)人 | 投資項(xiàng)目管理師 | 土地登記代理人 | 環(huán)境影響評(píng)價(jià)師 | 環(huán)保工程師
城市規(guī)劃師 | 公路監(jiān)理師 | 公路造價(jià)師 | 安全評(píng)價(jià)師 | 電氣工程師 | 注冊(cè)測繪師 | 注冊(cè)計(jì)量師
繽紛校園 | 實(shí)用文檔 | 英語學(xué)習(xí) | 作文大全 | 求職招聘 | 論文下載 | 訪談 | 游戲

2011年計(jì)算機(jī)等考二級(jí)JAVA學(xué)習(xí)精華整理(63)

考試吧整理了2011年計(jì)算機(jī)的等考二級(jí)JAVA學(xué)習(xí)精華,幫助考生備考。

  四、類DBConnectionManager 說明

  該類只能創(chuàng)建一個(gè)實(shí)例,其它對(duì)象能夠調(diào)用其靜態(tài)方法(也稱為類方法)獲得該唯一實(shí)例的引用。如031至036行所示,DBConnectionManager類的建構(gòu)函數(shù)是私有的,這是為了避免其它對(duì)象創(chuàng)建該類的實(shí)例。

  DBConnectionManager類的客戶程序可以調(diào)用getInstance()方法獲得對(duì)該類唯一實(shí)例的引用。如018至029行所示,類的唯一實(shí)例在getInstance()方法第一次被調(diào)用期間創(chuàng)建,此后其引用就一直保存在靜態(tài)變量instance中。每次調(diào)用getInstance()都增加一個(gè)DBConnectionManager的客戶程序計(jì)數(shù)。即,該計(jì)數(shù)代表引用DBConnectionManager唯一實(shí)例的客戶程序總數(shù),它將被用于控制連接池的關(guān)閉操作。

  該類實(shí)例的初始化工作由146至168行之間的私有方法init()完成。其中 getResourceAsStream()方法用于定位并打開外部文件。外部文件的定位方法依賴于類裝載器的實(shí)現(xiàn)。標(biāo)準(zhǔn)的本地類裝載器查找操作總是開始于類文件所在路徑,也能夠搜索CLASSPATH中聲明的路徑。db.properties是一個(gè)屬性文件,它包含定義連接池的鍵-值對(duì)。可供定義的公用屬性如下:

  drivers 以空格分隔的JDBC驅(qū)動(dòng)程序類列表

  logfile 日志文件的絕對(duì)路徑

  其它的屬性和特定連接池相關(guān),其屬性名字前應(yīng)加上連接池名字:

  .url 數(shù)據(jù)庫的 JDBC URL

  .maxconn 允許建立的最大連接數(shù),0表示沒有限制

  .user 用于該連接池的數(shù)據(jù)庫帳號(hào)

  .password 相應(yīng)的密碼

  其中url屬性是必需的,而其它屬性則是可選的。數(shù)據(jù)庫帳號(hào)和密碼必須合法。用于Windows平臺(tái)的db.properties文件示例如下:

  drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.idbDriver

  logfile=D:\\user\\src\\java\\DBConnectionManager\\log.txt

  idb.url=jdbc:idb:c:\\local\\javawebserver1.1\\db\\db.prp

  idb.maxconn=2

  access.url=jdbc:odbc:demo

  access.user=demo

  access.password=demopw

  注意在Windows路徑中的反斜杠必須輸入2個(gè),這是由于屬性文件中的反斜杠同時(shí)也是一個(gè)轉(zhuǎn)義字符。

  init()方法在創(chuàng)建屬性對(duì)象并讀取db.properties文件之后,就開始檢查logfile屬性。如果屬性文件中沒有指定日志文件,則默認(rèn)為當(dāng)前目錄下的DBConnectionManager.log文件。如日志文件無法使用,則向System.err輸出日志記錄。

  裝載和注冊(cè)所有在drivers屬性中指定的JDBC驅(qū)動(dòng)程序由170至192行之間的loadDrivers()方法實(shí)現(xiàn)。該方法先用StringTokenizer將drivers屬性值分割為對(duì)應(yīng)于驅(qū)動(dòng)程序名稱的字符串,然后依次裝載這些類并創(chuàng)建其實(shí)例,最后在 DriverManager中注冊(cè)該實(shí)例并把它加入到一個(gè)私有的向量drivers。向量drivers將用于關(guān)閉服務(wù)時(shí)從DriverManager取消所有JDBC 驅(qū)動(dòng)程序的注冊(cè)。

  init()方法的最后一個(gè)任務(wù)是調(diào)用私有方法createPools()創(chuàng)建連接池對(duì)象。如109至142行所示,createPools()方法先創(chuàng)建所有屬性名字的枚舉對(duì)象(即Enumeration對(duì)象,該對(duì)象可以想象為一個(gè)元素系列,逐次調(diào)用其nextElement()方法將順序返回各元素),然后在其中搜索名字以“.url”結(jié)尾的屬性。對(duì)于每一個(gè)符合條件的屬性,先提取其連接池名字部分,進(jìn)而讀取所有屬于該連接池的屬性,最后創(chuàng)建連接池對(duì)象并把它保存在實(shí)例變量pools中。散列表(Hashtable類 )pools實(shí)現(xiàn)連接池名字到連接池對(duì)象之間的映射,此處以連接池名字為鍵,連接池對(duì)象為值。

  為便于客戶程序從指定連接池獲得可用連接或?qū)⑦B接返回給連接池,類DBConnectionManager提供了方法getConnection()和freeConnection()。所有這些方法都要求在參數(shù)中指定連接池名字,具體的連接獲取或返回操作則調(diào)用對(duì)應(yīng)的連接池對(duì)象完成。它們的實(shí)現(xiàn)分別在051至064行、066至080行、038至049行。

  如082至107行所示,為實(shí)現(xiàn)連接池的安全關(guān)閉,DBConnectionManager提供了方法release()。在上面我們已經(jīng)提到,所有DBConnectionManager的客戶程序都應(yīng)該調(diào)用靜態(tài)方法getInstance()以獲得該管理器的引用,此調(diào)用將增加客戶程序計(jì)數(shù)。客戶程序在關(guān)閉時(shí)調(diào)用release()可以遞減該計(jì)數(shù)。當(dāng)最后一個(gè)客戶程序調(diào)用release(),遞減后的引用計(jì)數(shù)為0,就可以調(diào)用各個(gè)連接池的release()方法關(guān)閉所有連接了。管理類release()方法最后的任務(wù)是撤銷所有JDBC驅(qū)動(dòng)程序的注冊(cè)。

上一頁  1 2 3 4 5 6 7 8 9 下一頁
  相關(guān)推薦:

  計(jì)算機(jī)等級(jí)考試二級(jí)Java經(jīng)典算法大全匯總

  2010年9月計(jì)算機(jī)等級(jí)考試成績查詢時(shí)間匯總

   2011計(jì)算機(jī)等級(jí)考試二級(jí)JAVA學(xué)習(xí)精華匯總

文章搜索
版權(quán)聲明:如果計(jì)算機(jī)等級(jí)考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本計(jì)算機(jī)等級(jí)考試網(wǎng)內(nèi)容,請(qǐng)注明出處。