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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-基于java的數(shù)據(jù)庫連接池的開發(fā)-資料下載頁

2024-11-16 18:02本頁面

【導(dǎo)讀】是一個(gè)難點(diǎn),頻繁對(duì)數(shù)據(jù)庫的連接與關(guān)閉操作、多客戶對(duì)數(shù)據(jù)庫的并發(fā)訪問,一定程度上決定了WEB系統(tǒng)的響應(yīng)以及應(yīng)用性能。使用數(shù)據(jù)庫連接池方式能對(duì)。文章通過介紹、分析數(shù)據(jù)庫連接池工。作的基本原理,了解目前流行的WEB服務(wù)器在數(shù)據(jù)庫連接池方面的使用現(xiàn)狀后,總結(jié)一了些數(shù)據(jù)庫連接池開發(fā)程序中容易忽略的問題。并在學(xué)習(xí)掌握了實(shí)現(xiàn)連。據(jù)庫資源變得相對(duì)高效和容易,從實(shí)際上論證了這種設(shè)計(jì)方案的可行性。

  

【正文】 ()。 } } 連接池的測(cè)試 對(duì)于一個(gè)好的連接池,性能顯得尤為重要。性能不僅僅體現(xiàn)的是 對(duì)數(shù)據(jù)庫操作的 處理速度還有 連接池自身的 穩(wěn)定性 。 通過壓力測(cè)試,對(duì)比能夠看出 DBCP連接池要比 默認(rèn) 自帶 的 數(shù)據(jù)庫連接池 c3p0 快,但是穩(wěn)定性卻不如它 ,并發(fā)用戶過多常常會(huì)自動(dòng)斷開連接 。 通過對(duì)本連接池的測(cè)試發(fā)現(xiàn),有連接池的 時(shí)候 對(duì)數(shù)據(jù)庫的操作要比沒 有連接池 的時(shí)候 快 35秒。 一般數(shù)據(jù)庫連接池 采用 DBCP 作為 連接池時(shí) ,默認(rèn)的初始化為 50 個(gè),速度不會(huì)有太大問題 。正常情況下,系統(tǒng)沒問題,壓力測(cè)試從 10個(gè)并發(fā)開始,每一次增量是增加 10個(gè)并發(fā), 至 200400 并發(fā)用戶將成為一個(gè)重要節(jié)點(diǎn), 性能的優(yōu)越能得以體現(xiàn)。而 本連接池沒有經(jīng)過壓力測(cè)試,多用戶的并發(fā)訪問時(shí)其穩(wěn)定性還有待驗(yàn)證。 5 系統(tǒng)測(cè)試問題總結(jié) 連接池的泄露問題 產(chǎn)生現(xiàn)象 當(dāng)系統(tǒng)訪問量較大時(shí),會(huì)出現(xiàn)連接池連接數(shù)居高不下的情況,如果在關(guān)閉數(shù)據(jù)庫連接的過程中發(fā)生錯(cuò)誤會(huì)導(dǎo)致他們不再會(huì)被重用。這就叫做“數(shù)據(jù)庫連接池泄漏” 。這將會(huì)最終導(dǎo)致 web 應(yīng)用程序數(shù)據(jù)庫連接失敗。甚至造成連接池崩潰,從而無法進(jìn)行數(shù)據(jù)交互,服務(wù)器當(dāng)機(jī)。 解決辦法 常見的程序錯(cuò)誤寫法有以下兩種: 第 14 頁 共 22 頁 當(dāng)連接執(zhí)行數(shù)據(jù)庫操作出錯(cuò)時(shí),未執(zhí)行數(shù)據(jù)庫關(guān)閉。 Connection conn = ()。 ?? .//執(zhí)行數(shù)據(jù)庫操作 ()。 在以上代碼中,如果執(zhí)行數(shù)據(jù)庫操作過程中,出現(xiàn)異常,系統(tǒng)從出現(xiàn)異常處停止,不再執(zhí)行下面的代碼,造成數(shù)據(jù)庫連接池?zé)o法回收,連接泄露的情況。正確的代碼寫法應(yīng)如下 : Try{ Connection conn = ()。 ?? .//執(zhí)行數(shù)據(jù)庫操作 } catch(Exception e) { } finally{ ()。 //異常處理后必須處理的方法。 } 這樣將保證了在執(zhí)行數(shù)據(jù)庫操作過程中即使出現(xiàn)異常,也將能夠執(zhí)行數(shù)據(jù)庫連接池的回收。 在連接中嵌套數(shù)據(jù)庫連接,如下: Try { Connection conn = ()。 doMethodA()//執(zhí)行數(shù)據(jù)庫操作 } catch(Exception e) { }finally{ ()。 } Public void doMethodA(){ 第 15 頁 共 22 頁 ? .//再次打開數(shù)據(jù)庫進(jìn)行操作 } 在上面的例子中,當(dāng)調(diào)用方法 doMethodA()時(shí),在方法內(nèi)部又打開了一個(gè)數(shù)據(jù)庫連接,這時(shí)造成同一線程中打開了兩個(gè)連接,如果不注意,很有可能就打開了更多的連接,以至于成為系統(tǒng)性能的瓶頸。 多數(shù)據(jù)庫服務(wù)器問題 如今 在一個(gè)應(yīng)用系統(tǒng)中,一般可能不只訪問一個(gè)數(shù)據(jù)庫,有時(shí)會(huì)訪問兩 個(gè)或是多個(gè)數(shù)據(jù)庫, 各 個(gè)數(shù)據(jù)庫的數(shù)據(jù)必須融會(huì) 到同一個(gè)業(yè)務(wù)邏輯中,否則就成為一個(gè)個(gè)低價(jià)值的數(shù)據(jù)孤島 , 這時(shí)就需用到多數(shù)據(jù)源。 在一個(gè)應(yīng)用系統(tǒng)中,一般會(huì)有一個(gè)數(shù)據(jù)源應(yīng)用較多,其它數(shù)據(jù)源應(yīng)用較少,我們把應(yīng)用較多的數(shù)據(jù)源定義為主數(shù)據(jù)源,其它數(shù)據(jù)源定義為從數(shù)據(jù)源。 我們?yōu)槊恳粋€(gè)數(shù)據(jù)源定義一個(gè)名稱,在應(yīng)用系統(tǒng)中根據(jù)該名稱定向到數(shù)據(jù)源。在應(yīng)用中,我們定義一個(gè)靜態(tài) Hashtable 對(duì)數(shù)據(jù)源進(jìn)行保存。 下面給出一個(gè)方法 : /** * 數(shù)據(jù)源 hash 表 */ private static final Hashtable dsHash = new Hashtable(); 用戶在調(diào)用數(shù)據(jù)源時(shí),首先從 hash 中查詢?cè)摂?shù)據(jù)源,如果存在,直接返回,如果不存在,則初始化 DataSource,并放入 hash 中,再返回。注意:這兒用到了同步,以防止同一數(shù)據(jù)源初始化兩次。 /** * 初始化 datasource * * @param DB_NAME */ private static synchronized DataSource init(String DB_NAME) { DataSource ds1 = (DataSource) (DB_NAME)。 if (ds1 == null) { try { Context initCtx = new InitialContext()。 //從配置文件中讀取數(shù)據(jù)源,如果未配置,則用主數(shù)據(jù) 第 16 頁 共 22 頁 源 String s = (DB_NAME, (JNDI_DATASOURCE))。 Object obj = (Object) (s)。 if (obj != null) { ds1 = () obj。 (DB_NAME, ds1)。 } else { (未找到數(shù)據(jù)源 )。 } } catch (Exception ex) { ()。 (DB_NAME)。 } } return ds1。 } /** * 根據(jù) jndi 名打開 連接 * 打開該 連接 后應(yīng)該關(guān)閉 * 注:不能調(diào)用本類的方法 closeConnection 關(guān)閉 連接 ,應(yīng)該在外部用 ()關(guān)閉 * * @param DB_NAME JNDI 名稱 * @return */ public static Connection getConnections(String DB_NAME) { if (DB_NAME == null) { return getConnection()。 } else { Connection conn = null。 第 17 頁 共 22 頁 // JNDI_NAME = pname。 //從哈希表中查詢,如果不存在則創(chuàng)建 try { conn = init(DB_NAME).getConnection()。 } catch (SQLException e) { ()。 } catch (Exception e) { ()。 } return conn。 } } /** * 關(guān)閉 連接 , * * @param DB_NAME * @param conn1 */ public static void closeConnections(String DB_NAME, Connection conn1) { if (DB_NAME == null) { closeConnection()。 } else { closeConnections(conn1)。 } } 本系統(tǒng) 并沒有針對(duì)多數(shù)據(jù)源的情況處理,以上只是將可能遇到的問題進(jìn)行歸納總結(jié),仍需要補(bǔ)充和完善。 第 18 頁 共 22 頁 結(jié) 論 通過本次課題的研究,可以看出在廣泛采用 B/S 結(jié)構(gòu)的 Web 應(yīng)用程序中 ,并發(fā)訪問數(shù)據(jù)庫是一關(guān)鍵性問題。只有充分運(yùn)用連接池訪問技術(shù),才能提高數(shù)據(jù)庫的訪問效率,改善 Web 應(yīng)用,從而減少系統(tǒng)開銷。在進(jìn)行與數(shù)據(jù)庫有關(guān)的應(yīng)用開發(fā)中,數(shù)據(jù)庫連接的管理是一個(gè)重點(diǎn),也是一個(gè)難點(diǎn)。很多時(shí)候,連接的混亂管理所造成的系統(tǒng)資源開銷過大成為制約大型企業(yè)級(jí)應(yīng)用效率的瓶頸。對(duì)于眾多用戶訪問的 Web 應(yīng)用,采用數(shù)據(jù)庫連接技術(shù)的系統(tǒng)在效率和穩(wěn)定性上比采用傳統(tǒng)的其他方式的系統(tǒng)要好很多。本文 采用 了一些廣泛使用的設(shè)計(jì)模式(資源池,引用記數(shù)等) , 討論了基于連接池技術(shù)的數(shù)據(jù)庫連接管理的關(guān)鍵問題并給出了一個(gè)實(shí)現(xiàn)模型。這是連 接池管理程序,提高系統(tǒng)的整體性能的一種基本模式。 參考文獻(xiàn) [1] Greg Barish[美 ].J2EE Web 應(yīng)用高級(jí)編程 [M].林琪 ,英宇譯 .北京 :清華大學(xué)出版社 ,2020。 [2] 畢利 ,畢茹 ,李光明 .計(jì)算機(jī)系統(tǒng)應(yīng)用 [M].北京 :電子工業(yè)出版社 ,。 [3] 謝俊 ,陳明 .Java數(shù)據(jù)庫連接池的研究與實(shí)現(xiàn) [M].北京 :科學(xué)出版社 ,。 [4] 黃汛 ,程治剛 .數(shù)據(jù)庫連接池技術(shù)的應(yīng)用與研究 [M].武漢 :武漢大學(xué) 出版社 ,。 [5] 肖捷 ,肖正新 .基于 Java的通用數(shù)據(jù)庫連接池組件的設(shè)計(jì)與實(shí)現(xiàn) [M].北京 :電子工業(yè)出版社 , 2020。 [6] 張聰 ,王福川 ,劉啟元 .計(jì)算機(jī)系統(tǒng)應(yīng)用 [M].北京 :電子工業(yè)出版社 ,2020。 [7] 李昌一 ,宋中山 .基于 Java的數(shù)據(jù)庫連接池設(shè)計(jì)與實(shí)現(xiàn) [M].合肥 :安徽工業(yè)大學(xué)出版社 ,2020。
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1