java設定資料庫串連池的方法步驟__JDBC

來源:互聯網
上載者:User

先來瞭解下什麼是資料庫連接池
資料庫連接池技術的思想非常簡單,將資料庫連接作為Object Storage Service在一個Vector對象中,一旦資料庫連接建立後,不同的資料庫訪問請求就可以共用這些串連,這樣,通過複用這些已經建立的資料庫連接,可以克服上述缺點,極大地節省系統資源和時間。


在實際應用開發中,特別是在WEB應用系統中,如果JSP、Servlet或EJB使用JDBC直接存取資料庫中的資料,每一次資料訪問請求都必須經曆建立資料庫連接、開啟資料庫、存取資料和關閉資料庫連接等步驟,而串連並開啟資料庫是一件既消耗資源又費時的工作,如果頻繁發生這種資料庫操作,系統的效能必然會急劇下降,甚至會導致系統崩潰。資料庫連接池技術是解決這個問題最常用的方法,在許多應用程式伺服器(例如:Weblogic,WebSphere,JBoss)中,基本都提供了這項技術,無需自己編程,但是,深入瞭解這項技術是非常必要的。

資料庫連接池的主要操作如下:
(1)建立資料庫連接池對象(伺服器啟動)。
(2)按照事先指定的參數建立初始數量的資料庫連接(即:空閑串連數)。
(3)對於一個資料庫訪問請求,直接從串連池中得到一個串連。如果資料庫連接池對象中沒有閒置串連,且串連數沒有達到最大(即:最大活躍串連數),建立一個新的資料庫連接。
(4)存取資料庫。
(5)關閉資料庫,釋放所有資料庫連接(此時的關閉資料庫連接,並非真正關閉,而是將其放入空閑隊列中。如實際空閑串連數大於初始空閑串連數則釋放串連)。
(6)釋放資料庫連接池對象(伺服器停止、維護期間,釋放資料庫連接池對象,並釋放所有串連)。
配置步驟:
1.在Tomcat  conf/content.xml中<Context>節點內添加如下內容

<Resource name="jdbc/news" auth="Container"type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="120010" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=news"/>


name:之後我們要調用resource時候用到
type:是連結資料庫時候用到的java擴充包下的類
maxActive:最大串連數
maxIdle:是空閑時候最大串連數
maxwait:空閑判斷標準
注意:
1.該設定檔裡不允許有中文;各個屬性間的用一個空格隔開
2.要將對應連結資料庫的jar包放到tomcat /lib檔案夾中工程中就不需要存放了
下面還中是連結oracle的

<Resource type="javax.sql.DataSource" name="jdbc/news" url="jdbc:oracle:thin:@192.168.2.102:1521:orcl" driverClassName="oracle.jdbc.driver.OracleDriver" password="bg" username="test" maxWait="10000" maxIdle="30" maxActive="100" auth="Container"/>
2.在工程的web.xml中添加如下代碼
<resource-ref>
      <res-ref-name>jdbc/news</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
</resource-ref>

這裡<res-ref-name>標籤裡面的名字就是在content.xml檔案中的name的名字


3.得到資料庫連接池中的Connection對象


Context context=new InitialContext();
DataSourceds=(DataSource)context.lookup("java:comp/env/jdbc/news");
Connectionconn = ds.getConnection();


context是javax.namingx下的類
dataSource是javax.sql下的類
"java:comp/env/jdbc/news"中:java:comp/env是固定寫法 jdbc/news是jndi名稱(Tomcat中配置的那個name)


如果我們不是在web.xml中配置資料來源,我們用spring來控制資料庫連結方法步驟:
1.在設定檔中添加如下節點
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName" value="java:comp/env/jdbc/news"/> 
</bean>

配置好了擷取sql語句查詢資料有多少條:


    調用的時候直接Dao類繼承JdbcDaoSupport類(spring.jar中的類)
    int count = this.getJdbcTemplate().queryForInt("select * from users");
這樣我們就搞定了!當然也許還有很多方法可以配置,我只列出上面幾種,要是有什麼問題可以私密我我很樂意與大家一起討論。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.