亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用JNDI配置Tomcat數(shù)據(jù)源[提高訪問數(shù)據(jù)庫效率]

系統(tǒng) 2167 0
原理:在DataSource中事先建立多個(gè)數(shù)據(jù)庫連接,保存在數(shù)據(jù)庫連接池中。當(dāng)程序訪問數(shù)據(jù)庫時(shí),只用從連接池中取空閑狀態(tài)的數(shù)據(jù)庫連接即可,訪問結(jié)束,銷毀資源,數(shù)據(jù)庫連接重新回到連接池,呵呵,這與每次去直接訪問數(shù)據(jù)庫相比,會(huì)節(jié)省大量時(shí)間和資源。恩,感覺不錯(cuò)~
??? ??? JNDI( Java Naming and Directory Interface ) ,是Java平臺(tái) 的一個(gè)標(biāo)準(zhǔn)擴(kuò)展,提供了一組接口、類和關(guān)于命名空間的概念。如同其它很多Java技術(shù)一樣,JDNI是provider-based的技術(shù),暴露了一個(gè) API和一個(gè)服務(wù)供應(yīng)接口(SPI)。這意味著任何基于名字的技術(shù)都能通過JNDI而提供服務(wù),只要JNDI支持這項(xiàng)技術(shù)。JNDI目前所支持的技術(shù)包括 LDAP、CORBA Common Object Service(COS)名字服務(wù)、RMI、NDS、DNS、Windows注冊表等等。很多J2EE技術(shù),包括EJB都依靠JNDI來組織和定位實(shí)體。
??? ?? ?? 哦~JNDI的概念好長~呵呵,朋友們可以把它理解為一種將對象和名字捆綁的技術(shù),對象工廠負(fù)責(zé)生產(chǎn)出對象,這些對象都和唯一的名字綁在一起,外部資源可以通過名字獲得某對象的引用。

??? ?? ?? 在javax.naming的包包中提供Context接口,提供了兩個(gè)很好用的方法:
<1> void bind( String name , Object object )
??? ??? 將名稱綁定到對象。所有中間上下文和目標(biāo)上下文(由該名稱最終原子組件以外的其他所有組件指定)都必須已經(jīng)存在。PS:名字不能為空~
<2>Object lookup( String name )
??? ?? 檢索指定的對象。如果 name為空,則返回此上下文的一個(gè)新實(shí)例(該實(shí)例表示與此上下文相同的命名上下文,但其環(huán)境可以獨(dú)立地進(jìn)行修改,而且可以并發(fā)訪問)。

??? ?? 外部資源訪問對象工廠中的工程圖:

在Tomcat 5.5\conf\Catalina\localhost\xxxxx.xml(xxxxx.xml為你自己的web的配置xml文件)?中添加resource

??????? <Resource name="MYSQL"
??????? type="javax.sql.DataSource"
??????? driverClassName="com.mysql.jdbc.Driver"
??????? password="********"
??????? maxIdle="2"
??????? maxWait="5000"
??????? username="root"
??????? url="jdbc:mysql://localhost:3306/jnestore"
??????? maxActive="10"/>

以上是tomcat 5.5版本的配置,5.5版本只有這樣陪才有效果,以前的版本可以按照paramter的方法添加;

Resource 一定要包含在<Context ......> </Context> 之間

在你的web的路近下,WEB-INF中找到web.xml,添加資源映射??????

????? ?<resource-ref>
?????????? <description>connection</description>
?????????? <res-ref-name>MYSQL</res-ref-name>
?????????? <res-type>javax.sql.DataSource</res-type>
?????????? <res-auth>Container</res-auth>
??????? </resource-ref>

把mysql的jdbc驅(qū)動(dòng).jar包放到tomcat的common/lib下去,也可以放到WEB-INF/lib下,

重新啟動(dòng)tomcat.

就可以用Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("java:comp/env/MYSQL");

Connection con = ds.getConnection(); 來連接數(shù)據(jù)庫連接池


一.在tomcat_home\common\lib下放入jdbc的驅(qū)動(dòng)程序,額外說一下,如果是使用sql server的話,有至少兩個(gè)驅(qū)動(dòng)可以選擇,一個(gè)是微軟提供的,另一個(gè)是 jtds,比微軟的要好很多,推薦使用 二.配置文件,tomcat 不同的版本配置文件略有不同,下面以tomcat5..5.*為例。 三.如果配置不正確會(huì)出現(xiàn)javax.naming.NameNotFoundException: Name is not bound in this Context 錯(cuò)誤方式一、全局?jǐn)?shù)據(jù)庫連接池 1、通過管理界面配置連接池,或者直接在tomcat\conf\server.xml的GlobalNamingResources中增加 <resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverclassname="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxidle="2" maxwait="5000" validationquery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxactive="4">2、在tomcat\webapps\myapp\META-INF\context.xml的Context中增加: <resourcelink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource">這樣就可以了。方式二、全局?jǐn)?shù)據(jù)庫連接池 1、同上 2、在tomcat\conf\context.xml的Context中增加: <resourcelink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource">方式三、局部數(shù)據(jù)庫連接池只需在tomcat\webapps\myapps\META-INF\context.xml的Context中增加: <resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverclassname="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxidle="2" maxwait="5000" validationquery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxactive="4">參數(shù)說明: driveClassName:JDBC驅(qū)動(dòng)類的完整的名稱; maxActive:同時(shí)能夠從連接池中被分配的可用實(shí)例的最大數(shù); maxIdle:可以同時(shí)閑置在連接池中的連接的最大數(shù); maxWait:最大超時(shí)時(shí)間,以毫秒計(jì); password:用戶密碼; url:到JDBC的URL連接; user:用戶名稱; validationQuery:用來查詢池中空閑的連接。以上三種方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是從微軟網(wǎng)站上下載的sql server jdbc (sp3)。 下面 分別舉tomcat5.0 和tomcat 5.5 配置文件 的例子(將此配置文件置于Tomcat \conf\Catalina\localhost 下) tomcat5.0 <resource auth="Container" name="jdbc/test" type="javax.sql.DataSource"><resourceparams name="jdbc/test"> <parameter><name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter><name>maxActive</name> <value>100</value> </parameter> <parameter><name>maxIdle</name> <value>30</value> </parameter> <parameter><name>maxWait</name> <value>10000</value> </parameter> <parameter><name>username</name> <value>sa</value> </parameter> <parameter><name>password</name> <value>test</value> </parameter> <parameter><name>driverClassName</name> <value>net.sourceforge.jtds.jdbc.Driver</value> </parameter> <parameter><name>defaultAutoCommit</name> <value>true</value> </parameter> <parameter><name>url</name> <value>jdbc:jtds:sqlserver://url/filedb;charset=gb2312;autoReconnect=true</value> </parameter> <parameter><name>removeAbandoned</name> <value>true</value> </parameter> <parameter><name>removeAbandonedTimeout</name> <value>60</value> </parameter> <parameter><name>logAbandoned</name> <value>true</value> </parameter> </resourceparams>tomcat 5.5 <resource defaultautocommit="true" removeabandoned="true" removeabandonedtimeout="60" logabandoned="true" auth="Container" name="jdbc/test" type="javax.sql.DataSource" password="test" driverclassname="oracle.jdbc.driver.OracleDriver" maxidle="30" maxwait="10000" username="test" url="jdbc:oracle:thin:@url:1521:dcdb" maxactive="100">可以看到 5.0 中原來是元素的項(xiàng)在5.5中變成了屬性</resource></resource></resource></resourcelink></resourcelink></resource>

使用JNDI配置Tomcat數(shù)據(jù)源[提高訪問數(shù)據(jù)庫效率]


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 天天爽天天干 | 九九视频这里只有精品99 | 奇米第八色 | 涩涩虎| 久久精品国产只有精品2020 | 天天干天天射天天爽 | 久久国产亚洲精品麻豆 | 无遮挡无遮挡91桃色在线观看 | 免费操片| 国产免费变态视频网址网站 | 亚洲国产精品视频在线观看 | 国产一区二区三区国产精品 | 四虎影视地址 | 亚洲国产一区二区三区a毛片 | 91在线手机精品免费观看 | 国产精品高清一区二区三区 | 日韩精品麻豆 | 天天草天天操 | 香蕉国产在线观看免费 | 欧美日韩顶级毛片www免费看 | 亚洲欧美一区二区三区麻豆 | 欧美精品国产一区二区三区 | 香蕉狠狠干 | 欧美交换乱理伦片在线观看 | 暴劫倾情无删减在线播放 | 欧美一级艳片视频免费观看 | 亚洲精品99久久久久中文字幕 | 午夜亚洲国产理论秋霞 | 欧美麻豆久久久久久中文 | 婷婷综合 在线 | 婷婷亚洲国产成人精品性色 | 九九99re在线视频精品免费 | a国产精品| 欧美黑人乱大交ⅹxxxxx | 久久婷五月综合 | 欧美国产成人一区二区三区 | 欧美日本高清动作片www网站 | 97在线观看成人免费视频 | 国内精品不卡一区二区三区 | 亚洲精品国产综合一线久久 | 国产精品久久久久无码av |