




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、1將數(shù)據(jù)庫驅(qū)動程序的 JAR文件放在Tomcat的common/lib中;2. 在server.xml中設(shè)置數(shù)據(jù)源,以 MySQl數(shù)據(jù)庫為例,如下:在vGlobalNamingResources> v/GlobalNamingResources> 節(jié)點中力口 入,vResourcename="jdbc/DBPool" type="javax.sql.DataSource" password="root" driverClassName="com.mysql.jdbc.Driver" maxIdle=&q
2、uot;2"maxWait="5000"username="root" url="jdbc:mysql:/127.0.0.1:3306/test" maxActive="4"/>屬性說明:name數(shù)據(jù)源名稱,通常取” jdbc/XXX ”的格式; type ,” javax.sql.DataSource ”; password,數(shù)據(jù)庫用戶密碼;driveClassName,數(shù)據(jù)庫驅(qū)動;maxIdle ,最大空閑數(shù),數(shù)據(jù)庫連接的最大空閑時間。 超過空閑時間,數(shù)據(jù)庫連接將被標(biāo)記為不可用,然后被釋放。設(shè)為
3、 0 表示無限制。MaxActive,連接池的最大數(shù)據(jù)庫連接數(shù)。設(shè)為0表示無限制。maxWait ,最大建立連接等待時間。如果超過此時間 將接到異常。設(shè)為 -1 表示無限制。3. 在你的web應(yīng)用程序的web.xml中設(shè)置數(shù)據(jù)源參考,如下:在 <web-app>v/web-app>節(jié)點中加入,vresource-ref> vdescription>MySQL DB Connection Poolv/description> vres-ref-name>jdbc/DBPoolv/res-ref-name> vres-type>javax.sq
4、l.DataSourcev/res-type> vres-auth>Containerv/res-auth> vres-sharing-scope>Shareablev/res-sharing-scope> v/resource-ref>子節(jié)點說明: description ,描述信息;res-ref-name ,參考數(shù)據(jù)源名字,同上一步的屬性 name;res-type ,資源類型,” javax.sql.DataSource ”;res-auth ,” Container ”; res-sharing-scope ,” Shareable ”;4在 we
5、b 應(yīng)用程序的 context.xml 中設(shè)置數(shù)據(jù)源鏈接,如下:在<Context>v/Context> 節(jié)點中加入,<ResourceLink name="jdbc/DBPool" type="javax.sql.DataSource" global="jdbc/DBPool"/>屬性說明:name同第2步和第3步的屬性name值,和子節(jié)點res-ref-name 值;type ,同樣取” javax.sql.DataSource ”; global,同 name值。至此,設(shè)置完成,下面是如何使用數(shù)據(jù)庫
6、連接池。1建立一個連接池類, DBPool.java ,用來創(chuàng)建連接池,代碼如下:import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.sql.DataSource;public class DBPool private static DataSource pool;static Context env = null;try env = (Context) new InitialContext().lookup("
7、java:comp/env");pool = (DataSource)env.lookup("jdbc/DBPool"); if(pool=null)System.err.println("'DBPool'is an unknown DataSource"); catch(NamingException ne) ne.printStackTrace();public static DataSource getPool() return pool;設(shè)置基本上主要有兩種方法我們以MySQL+TOMC為例1. 把DataSource設(shè)
8、置到我們的 WEB項目中,下面詳細的介紹下: 第一步:在我們的 WEB項目中的META-INF文件夾下建立一個 context.xmlXml 代碼1. <?xml version ='1.0' encoding ='utf-8'?>2.2. <Context>4.3. <Resource name="jdbc/mysql"4. auth ="Container"5. type ="javax.sql.DataSource"6. driverClassName ="
9、com.mysql.jdbc.Driver"7. url ="jdbc:mysql:/localhost/bbs"8. username="root"9. password="root"10. maxActive ="50"11. maxIdle ="20"12. maxWait="10000" />15.16. </Context>第二步:在我們的 WEB項目下的 WEB-INF文件夾下建立一個 web.xml(如果存在了就不用了,直接修改就行了
10、)(這幾天測試了一下,不做這步也可以,o(q_n)O哈哈省事了)Xml 代碼1. <resource-ref>2. <description> DB Connection </description>3. <res-ref-name> jdbc/mysql </res-ref-name>4. <res-type> javax.sql.DataSource </res-type>5. <res-auth> Container </res-auth>6. </resource-ref&
11、gt;第三步:我們就可以用代碼來獲取 Connection 對象了Java 代碼1. package xushun.util;2.3. import java.sql.*;4. import javax.sql.*;5. import javax.naming.*;6.7. public class DBHelper 8.9. public static Connection getConnection() throws SQ LException,NamingException10.11./ 初始化查找命名空間12.Context initContext= new InitialContex
12、t()13.Context envContext =(Context)initContext.lookup("java:/comp/env");14./ 找到 DataSource15.DataSource ds = (DataSource)envContext.lookup("jdbc/mysql");16.return ds.getConnection();17.18.2. 把 DataSource 設(shè)置到我們的 Tomcat 中,下面詳細的介紹下(測 試用的JAVA代碼和上面的一樣就不帖出了): 這里我查到的設(shè)置方法就有了一點區(qū)別了。有的人把 Da
13、taSource 設(shè) 置在 Tomcat 的 server.xml 文件的 GlobalNamingResources 下面, 然后在 context.xml 中去映射。有的直接就寫在 context.xml 中了 先說下在 server.xml 添加 DataSource第一步:在 Tomcat 的 conf 中的 server.xml 文件中找到Xml 代碼1. <GlobalNamingResources>2. <!-Editable user database that can also be used by3. UserDatabaseRealm to authen
14、ticate users4. - >5. <Resource name="UserDatabase" auth ="Container"6. type ="org.apache.catalina.UserDatabase"7. description ="User database that can be updated and saved"8. factory ="org.apache.catalina.users.MemoryUserDatabaseFactory"9. path
15、name="conf/tomcat-users.xml" />10. </GlobalNamingResources>修改為Xml 代碼1. <GlobalNamingResources>2. <!-Editable user database that can also be used by3. UserDatabaseRealm to authenticate users4. - >5. <Resource name="UserDatabase" auth ="Container"6
16、. type ="org.apache.catalina.UserDatabase"7. description ="User database that can be updated and saved"8.factory ="org.apache.catalina.users.MemoryU serDatabaseFactory"pathname="conf/tomcat-users.xml" />10.<Resource name="jdbc/bb11.auth ="Conta
17、iner"rce"12.driverClassName13.maxIdle ="20"14.maxWait="5000"15.username="root"16.password="admin9.ntype ="javax.sql.DataSou="com.mysql.jdbc.Driver"n17.url ="jdbc:mysql:/localhost:3306/bbs"18.19.20.21.22.maxActive ="100"r
18、emoveAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" /> </GlobalNamingResources>第二步:在 Tomcat 的 conf 文件夾下的 context.xml 中加入 Xml 代碼1. <ResourceLink name="jdbc/bbs" global ="jdbc/bbs" type =" javax.sql.DataSource" /
19、>第三步:就是在 WEB項目的 WEB-INF中的web.xml添加Xml 代碼1. <resource-ref>2. <description> DB Connection </description>3. <res-ref-name> jdbc/mysql </res-ref-name>4. <res-type> javax.sql.DataSource </res-type>5. <res-auth> Container </res-auth>6. </resource
20、-ref>還有就是在 Tomcat 文檔中提到的方法,直接修改 context.xml 文件 了在Tomcat的conf文件夾下的context.xml中加入Xml 代碼1. <Resource name="jdbc/bbs"2. auth ="Container" type ="javax.sql.DataSou rce"3. driverClassName ="com.mysql.jdbc.Driver"5.6.7.8.maxWait="5000"username="r
21、oot" password="admin"url ="jdbc:mysql:/localhost:3306/bbs"9.10.11.12.maxActive ="100" removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true" />然后就是在 WEB項目的 WEB-INF中的web.xml添力口Xml 代碼1. <resource-ref>2.3.4.5.vdes
22、cription> DB Connection v/description> vres-ref-name> jdbc/mysql v/res-ref-name> vres-type> javax.sql.DataSource v/res-type> vres-auth> Container v/res-auth>6. </resource-ref>就是這些了,如果有什么不太清楚的就留言,一起研究下。等以后 我在搜集下資料整理出上面用到的XML文件中各個標(biāo)簽的屬性及其代表的意思。有興趣的也可以自己先查下。 :-)vtd>JNDI查
23、找名稱</td><td>關(guān)聯(lián)的引用v/td><td>java:comp/env</td><td> 應(yīng)用程序環(huán)境條目 </td>vtd>java:comp/env/jdbcv/td>vtd>JDBC 數(shù)據(jù)源資源管理器連接工廠 </td><td>java:comp/env/ejb</td><td>EJB 弓丨用</td>vtd>java:comp/UserTransactionv/td>vtd>UserTransaction引
24、用v/td> vtd>java:comp/env/mailv/td> vtd>JavaMail 會話連接工廠 v/td>ORB<td>java:comp/env/url</td><td>java:comp/env/jms</td><td>java:comp/ORB</td>實例v/td><td>URL 連接工廠 </td>vtd>JMS 連接工廠和目標(biāo) v/td>vtd >應(yīng)用程序組件之間共享的數(shù)據(jù)庫連接是一種關(guān)鍵的有限的昂貴的資源,這一點在多用
25、戶的網(wǎng) 頁應(yīng)用程序中體現(xiàn)得尤為突出。對數(shù)據(jù)庫連接的管理能顯著影響到 整個應(yīng)用程序的伸縮性和健壯性,影響到程序的性能指標(biāo)。數(shù)據(jù)庫 連接池正是針對這個問題提出來的。數(shù)據(jù)庫連接池負責(zé)分配、管理和釋放數(shù)據(jù)庫連接,它允許應(yīng)用 程序重復(fù)使用一個現(xiàn)有的數(shù)據(jù)庫連接,而再不是重新建立一個 ; 釋放 空閑時間超過最大空閑時間的數(shù)據(jù)庫連接來避免因為沒有釋放數(shù)據(jù) 庫連接而引起的數(shù)據(jù)庫連接遺漏。這項技術(shù)能明顯提高對數(shù)據(jù)庫操 作的性能。數(shù)據(jù)庫連接池在初始化時將創(chuàng)建一定數(shù)量的數(shù)據(jù)庫連接放到連 接池中,這些數(shù)據(jù)庫連接的數(shù)量是由最小數(shù)據(jù)庫連接數(shù)來設(shè)定的。 無論這些數(shù)據(jù)庫連接是否被使用,連接池都將一直保證至少擁有這 么多的連接數(shù)
26、量。連接池的最大數(shù)據(jù)庫連接數(shù)量限定了這個連接池 能占有的最大連接數(shù),當(dāng)應(yīng)用程序向連接池請求的連接數(shù)超過最大 連接數(shù)量時,這些請求將被加入到等待隊列中。數(shù)據(jù)庫連接池的最 小連接數(shù)和最大連接數(shù)的設(shè)置要考慮到下列幾個因素:1) 最小連接數(shù)是連接池一直保持的數(shù)據(jù)庫連接,所以如果應(yīng)用 程序?qū)?shù)據(jù)庫連接的使用量不大,將會有大量的數(shù)據(jù)庫連接資源被 浪費;2) 最大連接數(shù)是連接池能申請的最大連接數(shù),如果數(shù)據(jù)庫連接 請求超過此數(shù),后面的數(shù)據(jù)庫連接請求將被加入到等待隊列中,這 會影響之后的數(shù)據(jù)庫操作。3) 如果最小連接數(shù)與最大連接數(shù)相差太大,那么最先的連接請 求將會獲利,之后超過最小連接數(shù)量的連接請求等價于建立一個新 的數(shù)據(jù)庫連接。不過,這些大于最小連接數(shù)的數(shù)據(jù)庫連接在使用完不會馬上被釋放,它將被放到連接池中等待重復(fù)使用或是空閑超時 后被釋放。Tomcat6.0 連接池配置1.配置 tomcat 下的 co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鎮(zhèn)江資格證模擬考試
- 公司合作養(yǎng)豬合同范本
- 冷鐓模具合同范本
- 冰箱售后服務(wù)合同范本
- 農(nóng)村水田改造合同范本
- 代理交易合同范本
- 兄妹贈予房產(chǎn)合同范本
- 北京出租車司機合同范本
- 農(nóng)村承包經(jīng)營戶合同范本
- 臨時店面員工合同范本
- DB11 938-2022 綠色建筑設(shè)計標(biāo)準
- 部編版語文八年級下冊第六單元名著導(dǎo)讀《鋼鐵是怎樣煉成的》問答題 (含答案)
- 2022譯林版新教材高一英語必修二單詞表及默寫表
- 全國青少年機器人技術(shù)等級考試:二級培訓(xùn)全套課件
- 九種中醫(yī)體質(zhì)辨識概述課件
- (外研版)英語四年級下冊配套同步練習(xí) (全書完整版)
- 小學(xué)數(shù)學(xué)計算能力大賽實施方案
- 古詩詞誦讀《虞美人》課件-統(tǒng)編版高中語文必修上冊
- 文物學(xué)概論-中國古代青銅器(上)
- 制作拉線課件
- 某物業(yè)公司能力素質(zhì)模型庫(參考)
評論
0/150
提交評論