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

正文內容

畢業(yè)設計論文-基于java的數據庫連接池的開發(fā)(編輯修改稿)

2024-12-22 18:02 本頁面
 

【文章內容簡介】 nt 池的 DataSource 對象。 自從 hibernate 自帶了 c3p0 以后, c3p0 很快就受到了廣大程序員的認可,其性能上來說比 DBCP 要好的多。 其他連接池(自寫連接池) 有些程序員喜歡自己寫連接池,建議不用這樣的方法,因為連接池的管理 第 3 頁 共 22 頁 較為復雜,自 己寫常出現各種各樣的錯誤,推薦 使用有 成熟技術的連接池,同時也方便系統(tǒng)的移植。 2 相關理論基礎 數據庫概述 數據庫,顧名思義,是存入數據的倉庫。只不過這個倉庫是在計算機存儲設備上的,而且數據是按一定格式存放的。 當人們收集了大量的數據后,應該把它們保存起來進入近一步的處理,進一步的抽取有用的信息。當年人們把數據存放在文件柜中,可現在隨著社會的發(fā)展,數據量急劇增長,現在人們就借助計算機和數據庫技術科學的保存大量的數據,以便能更好的利用這些數據資源。 要是下定義的話,就應該是:指長期儲存在計算機內的、有組織的、 可共享的數據集合。 數據庫包含關系數據庫、面向對象數據庫及新興的 XML 數據庫等多種,目前應用最廣泛的是關系數據庫,若在關系數據庫基礎上提供部分面向對象數據庫功能的對象關系數據庫。在數據庫技術的早期還曾經流行過層次數據庫與網狀數據庫,但這兩類數據庫目前已經極少使用。 數據庫連接池的基本原理 建立“緩沖存儲池”,是數據庫連接池的基本設計思想。這種技術類似于CPU 中的 Cache 技術,將預先設定好的數據庫連接放入該緩沖池中,當要建立數據庫連接操作時,便從池中取出一個連接,使用完畢后再將其放回。這樣就達到了連接復 用的目 的,應用程序重復使用一個數據庫連接, 在多層結構的應用程序中通過連接池技術可以使系統(tǒng)的性能明顯得到提到 。最為關鍵的是,該方法避免了對數據庫連接的頻繁建立、關閉,減小了系統(tǒng)開銷,提高了響應速度。我們可以通過設定連接池最大連接數來防止系統(tǒng)無盡的與數據庫連接。更為重要的是我們可以通過連接池的管理機制監(jiān)視數據庫的連接的數量﹑使用情況,為系統(tǒng)開發(fā)﹑測試及性能調整提供依據。 數據庫連接池屬于應用程序對底層的調用 , 用戶并發(fā)訪問應用程序時會提交訪問請求,然后通過 線程來處理這些請求,并向連接池申請一個對數據庫操作的連接,操 作完畢后將連接釋放。應用程序調用 連接池 連接 的基本工作原理如下圖所示: 第 4 頁 共 22 頁 圖 1 連接池的調用 基于以上原理,連接池的建立會在后面章節(jié)中做具體描述。 為了方便理解,連接池 以 JSP 頁面 形式 將 最大連接數的設置、 連接池的使用 、超時等待、連接池的關閉等 情況展示出來 ,給用戶一個更為直觀 的 感受。 連接的調用 原理 如下圖所示: 圖 2 建立數據庫連接 從圖中可以看出,當程序 ( JSP、 Servlet、 JavaBean) 中需要數據庫連接時,只需從內存中取出一個來, 并將這個取得的連接加入 Vector 中, 而不用新建 連接 ;使用完畢 后放回內存中 ,并將 Vector 中的已用連接刪除 。 連接池中的關鍵技術 連接池的分配與釋放 連接池的分配與釋放 技術對系統(tǒng)的性能有很大的影響 。合理的分配與釋放,可以提高連接的復用度,從而降低建立新連接的開銷,同時還可以加快用戶的訪問速度。對于連接的管理。每當用戶請求一個連接時,系統(tǒng)首先檢查連接池內有沒有空閑連接。如果有就把建立時間最長(通過容器的順序存放實現)的那個連接分配給他(實際是先做連接是否有效的判斷,如果可用就分配給用戶,若不可用就把這個連接刪掉,重新檢測是否還有連接);如果檢查到當前所開連接池沒有達到 連接池所允許的最大連接數( maxConn) ,就新建一個連接,如果已經達到,就等待一定的時間( timeout)。如果在等待的時間內有連接被釋放取得連接 釋放連接 第 5 頁 共 22 頁 出來就可以把這個連接分配給等待的用戶,如果等待時間超過預定時間 timeout,則返回空值( null)。系統(tǒng)對已經分配出去正在使用的連接只做計數。 連接池的維護 數據庫連接池到底要放置多少個連接,這 是個配置策略。為了使系統(tǒng)的性能達到最佳狀態(tài),連接池中的連接數的設定顯得尤為重要,我們采用設置最大連接數( maxConn)和最小連接數( minConn)的方式來解決這一問題。所謂 最大連接數,即連接池中允許連接的最大數目,然后,最大連接數的設定要通過具體的應用需求來給出一個連接池可以承受的最大連接數目的最佳點。如果應用程序向連接池請求的連接數超過最大連接數量時,這些請求將被加入到等待隊列中,等待其他連接的釋放后 再 來調用一空閑連接( freeConn),這樣可能會影響部分對數據庫的操作。所謂最小連接數,即應用啟動前,已經預先創(chuàng)建好的連接數。無論這些數據庫連接是否被使用,連接池都將一直保證至少擁有這么多的連接數量。如果最小連接數過大,那么系統(tǒng)啟動過程將變慢,若應用程序對數據庫的訪問量不大, 過多的數據庫連接資源將被浪費,但是系統(tǒng)啟動后響應更快;如果過小系統(tǒng)啟動將加快,但是最初使用的用戶會因為連接池中沒有足夠的連接而會發(fā)送一個新的數據庫連接請求,將不可避免的延緩執(zhí)行速度。 3 系統(tǒng)總體設計思想及方案 數據庫連接池技術的 設計 思想非常簡單, 先 將數據庫連接作為對象存儲在一個 Vector 對象中 , Vector 類可以實現可增長的對象“數組”。 Vector 的大小可以根據需要增大或縮小, 以適應創(chuàng)建 Vector 后進行添加或移除項的操作 。這里 主要包含使用的連接( nowConnections )和未使用的連接( freeConnections) 兩個 Vector 類創(chuàng)建的對象, 創(chuàng)建 Vector 對象的 方法如下: public DBConnectionPool(Vector connections) { freeConnections = new Vector()。 nowConnections = new Vector()。 } 當外部程序向 數據庫 申請 建立連接 后, 系統(tǒng) 會 調用 ( )方法, 此時 已用連接計數器加 1,相應的,調用 ( )方法, 此時 空閑連接計數器減 1, 對于 這樣的引用計數法 將 會在后面的章節(jié)中具體描述。 這樣,不同的數據庫訪問請求就可以共享這些連接 ,并 通過復用這些已經建立的數據庫連接, 克服 傳統(tǒng)開發(fā)模式對數據庫操作的 缺點。另外,采用超時判斷( timeout)機制,等待應用程序對連接的釋放或者調用()方法主動釋放連接, 能 極大地節(jié)省系統(tǒng)資源和 用戶等待 第 6 頁 共 22 頁 時間。 而 實現連接池時,當應用程序調用 ( )試圖去關閉數據庫連接時,這時需要有一個通告給連接池實現模塊,通告對當前 的數據庫物理連接( DBConnectionPool 對象)進行重用。為了使連接池實現模塊能得到這種 “ 通告 ” ,連接池實現模塊必須實現 ConnectionEventListener 接口,而且同時需要注冊成為 DBConnectionPool 對象的監(jiān)聽者。連接池實現模塊接受到此通告后, 不是真正意義上的物理關閉,而是 將 DBConnectionPool 對象返回到池中進行重用 。 從上面的介紹,可以看出連接池技術的關鍵就是其自身的管理機制,結合連接池工作的基本原理, 通過下圖 展現出 一個連接池系統(tǒng)的總體設計框架。 圖 3 總體設計框架 連接池中的關鍵類設計 一個連接池應用的設計, 需要幾個關鍵部分作為支撐 , 其中最為重要的是DBConnectionPool 類和 DBConnectionManager 類,他們 對 連接 的建立、管理、釋放起決定性作用 。 大體作用列舉如下: 建立數據庫連接 GetConnection() CloseConnection() 第 7 頁 共 22 頁 一個 DBConnectionPool 類,該類負責從連接池獲取 (或創(chuàng)建 )連接、將連接返回給連接池、 空閑連接的超時等待、 系統(tǒng)關閉時釋放所有資源并關閉所有連接。 一個 DataSourceProviderServlet 類,該類負責通過上下文環(huán)境讀取配置文件后裝載 和注冊 JDBC 驅動、數據庫名等。 一個 DBConnectionManager 類,該類負責 按預先指定的最大連接池數連初始化 連接池 、創(chuàng)建 DBConnectionPool 對象 provider、當所有的連接客戶退出后,關閉全部連接。 屬性文件,該文件中包含了數據庫驅動( DriverName)、數據庫 URL、數據庫表空間名( User)、表空間密碼( Password)、連接池最大連接數( maxConnections)。 即為應用程序對連接池 中的連接 的調用 和釋放 ,應用程序 退出后連接池的關閉。 將以上 5 個部分串連起來,即是本連接池的 簡單 設計 流程 。 首先 應用程序向 連接池 申請連接,就需要 通過 DBConnectionPool 類 、 DBConnectionManager類 對連接池 初始化, 并且還需要 DataSourceProviderServlet 類 的幫助 讀取 文件 中的屬性 , 加載和注冊 JDBC 驅動 、數據庫名 等, 連接池 才能 初始化成功。 之后通過 DBConnectionPool 類監(jiān)視、管理 應用程序調用、釋放的 數據庫連接,并通過該類的 cp 對象將連接使用情況反映在 頁面上。 連接池管理程序得到某 個連接,而其他線程就不會得到這個數據庫連接了,此線程使用結束后,該線程將連接交還給連接池管理程序,以分配給其他等待連接的請求線程。這里連接池充分利用 Java 的線程同步機理,使當前服務線程處于等待 狀 態(tài), 直至 有空 閑的 連接 出現 。 最后 當應 用程
點擊復制文檔內容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1