深入淺析Spring的數(shù)據(jù)庫(kù)連接池-創(chuàng)新互聯(lián)

深入淺析Spring的數(shù)據(jù)庫(kù)連接池?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

10多年的龍泉驛網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整龍泉驛建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“龍泉驛網(wǎng)站設(shè)計(jì)”,“龍泉驛網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

數(shù)據(jù)庫(kù)連接池

對(duì)一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)應(yīng)用,由于對(duì)數(shù)據(jù)庫(kù)的訪問不是很頻繁,這時(shí)可以簡(jiǎn)單地在需要訪問數(shù)據(jù)庫(kù)時(shí),就新創(chuàng)建一個(gè)連接,就完后就關(guān)閉它,這樣做也不會(huì)帶來什么性能上的開銷。但是對(duì)于一個(gè)復(fù)雜的數(shù)據(jù)庫(kù)應(yīng)用,情況就完全不同而,頻繁的建立、關(guān)閉連接,會(huì)極大地減低系統(tǒng)的性能,因?yàn)閷?duì)于連接的使用成了系統(tǒng)性能的瓶頸。

通過建立一個(gè)數(shù)據(jù)庫(kù)連接池以及一套連接使用管理策略,可以達(dá)到連接復(fù)用的效果,使得一個(gè)數(shù)據(jù)庫(kù)連接可以得到安全、高效的復(fù)用,避免了數(shù)據(jù)庫(kù)連接頻繁建立、關(guān)閉的開銷。

數(shù)據(jù)庫(kù)連接池的基本原理是在內(nèi)部對(duì)象池中維護(hù)一定數(shù)量的數(shù)據(jù)庫(kù)連接,并對(duì)外暴露數(shù)據(jù)庫(kù)連接獲取和返回方法。如:外部使用者可通過getConnection方法獲取連接,使用完畢后再通過releaseConnection方法將連接返回,注意此時(shí)連接并沒有關(guān)閉,而是由連接池管理器回收,并為下一次使用做好準(zhǔn)備。

數(shù)據(jù)庫(kù)連接池技術(shù)帶來的好處:

1、資源重用

由于數(shù)據(jù)庫(kù)連接得到重用,避免了頻繁創(chuàng)建、釋放鏈接引起的大量性能開銷。在減少系統(tǒng)消耗的基礎(chǔ)上,另一方面也增進(jìn)了系統(tǒng)運(yùn)行環(huán)境的平穩(wěn)性(減少內(nèi)存碎片以及數(shù)據(jù)庫(kù)臨時(shí)進(jìn)行/線程數(shù)量)

2、更快地系統(tǒng)響應(yīng)速度

數(shù)據(jù)庫(kù)連接池在初始化過程中,往往已經(jīng)創(chuàng)建了若干數(shù)據(jù)庫(kù)連接池置于池中備用。此時(shí)連接的初始化工作均已完成,對(duì)于業(yè)務(wù)請(qǐng)求處理而言,直接利用現(xiàn)有可用連接,避免了數(shù)據(jù)庫(kù)連接初始化和釋放過程的時(shí)間開銷,從而縮減了系統(tǒng)整體響應(yīng)時(shí)間

3、統(tǒng)一的連接管理,避免數(shù)據(jù)庫(kù)連接泄露

在較為完備的數(shù)據(jù)庫(kù)連接池實(shí)現(xiàn)中,可根據(jù)預(yù)先的連接占用超時(shí)設(shè)定,強(qiáng)制收回被占用連接,從而避免了常規(guī)數(shù)據(jù)庫(kù)連接操作中可能出現(xiàn)的資源泄露。

目前數(shù)據(jù)庫(kù)連接池產(chǎn)品是非常多的,主要有:

1、dbcp

dbcp,即DataBase Connection PoolApache出品,Spring開發(fā)組推薦使用的數(shù)據(jù)庫(kù)連接池,開發(fā)較為活躍,是一個(gè)使用極為廣泛的數(shù)據(jù)庫(kù)連接池產(chǎn)品。不過從網(wǎng)上

2、c3p0

Hibernate開發(fā)組推薦使用的數(shù)據(jù)庫(kù)連接池,它實(shí)現(xiàn)了數(shù)據(jù)源和JNDI的綁定

3、Proxool

Proxool的口碑較好,沒什么負(fù)面評(píng)價(jià)(比如dbcp就是因?yàn)镠ibernate認(rèn)為它BUG太多Hibernate才不推薦使用的),也是Hibernate開發(fā)組推薦使用的數(shù)據(jù)庫(kù)連接池,不過使用者不算多,開發(fā)不夠活躍。這個(gè)連接池提供了連接池監(jiān)控的功能,方便易用,便于發(fā)現(xiàn)連接池泄露的情況

基于Spring的JDBC基本框架搭建

先講一下使用Spring實(shí)現(xiàn)JDBC,數(shù)據(jù)庫(kù)連接池就用Spring開發(fā)組推薦的DBCP,DBCP需要三個(gè)jar包,先下載一下:

1、commons-dbcp-1.4.jar,官方網(wǎng)站上有,點(diǎn)我下載

2、commons.pool-1.6.jar,官方網(wǎng)站上有,點(diǎn)我下載

3、commons.collections4-4.0.jar,官方網(wǎng)站上有

下載了這三個(gè)jar包之后請(qǐng)導(dǎo)入自己的工程中(注意MySql的包別忘記導(dǎo)入了),雖然dbcp和pool都出了dbcp2和pool2的版本,Apache官網(wǎng)上都可以下載,但是這里提供的還是dbcp1和pool1的版本下載地址,一個(gè)原因是dbcp2和pool2都只可以在JDK1.7及JDK1.7以上的版本運(yùn)行,而dbcp1和pool1則可以在JDK1.6的版本運(yùn)行,考慮到MyEclipse10默認(rèn)自帶的JRE就是1.6版本的,所以這里下載、使用dbcp1和pool1。想要dbcp2和pool2的可以自己去Apache官網(wǎng)下載,不過要注意,dbcp2必須和pool2一組,dbcp1必須和pool1一組,不可以混著用。

JDBC,我之前寫過一篇文章,數(shù)據(jù)庫(kù)建立和實(shí)體類都是用的原文章里面的,這里只是把原生的JDBC搬到Spring JDBC下而已,看下最基礎(chǔ)的寫法,再添加功能,學(xué)生管理類為:

public class StudentManager
{
 private JdbcTemplate jdbcTemplate;

 private static StudentManager instance = new StudentManager();

 public static StudentManager getInstance()
 {
 return instance;
 }

 public JdbcTemplate getJdbcTemplate()
 {
 return jdbcTemplate;
 }
 public void setJdbcTemplate(JdbcTemplate jdbcTemplate)
 {
 this.jdbcTemplate = jdbcTemplate;
 }
}

標(biāo)題名稱:深入淺析Spring的數(shù)據(jù)庫(kù)連接池-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://muchs.cn/article40/dsgseo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、ChatGPTGoogle、App開發(fā)、定制網(wǎng)站商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)