日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[转]理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc...

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

在描述JNDI,例如獲得數據源時,JNDI地址有兩種寫法,例如同是? jdbc/testDS 數據源:
A:??????? java:comp/env/jdbc/testDS
B:??????? jdbc/testDS

這兩種寫法,配置的方式也不盡相同,第一種方法應該算是一種利于程序移植或遷移的方法,它的實現與“映射”的概念相同,而B方法,則是一個硬引用。
java:comp/env 是環境命名上下文(environment naming context(ENC)),是在EJB規范1.1以后引入的,引入這個是為了解決原來JNDI查找所引起的沖突問題,也是為了提高EJB或者J2EE應用的移植性。
在J2EE中的引用常用的有:
??????? JDBC 數據源引用在java:comp/env/jdbc 子上下文中聲明
??????? JMS 連接工廠在java:comp/env/jms 子上下文中聲明
??????? JavaMail 連接工廠在java:comp/env/mail 子上下文中聲明
??????? URL 連接工廠在 java:comp/env/url子上下文中聲明

可以通過下面的結構示意來發現這兩種描述的不同之處:
A:?????? java:comp/env/jdbc/testDS(虛地址)?? ------>??? 映射描述符?? ------>??????? jdbc/testDS (實際的地址)
B:?????? jdbc/testDS (實際的地址)
從這種結構上來看,A的確是便于移植的。

再來看一個例子:
假如你需要獲取datasource,例如:dataSource = (DataSource) ctx.lookup("java:comp/env/jdbc/testDS");
那么在配置文件中進行資源映射時,在web.xml中,
????? <resource-ref>
??????? <res-ref-name>jdbc/testDS</res-ref-name>
??????? <res-type>javax.sql.DataSource</res-type>
??????? <res-auth>Container</res-auth>
????? </resource-ref>
在相應的資源配置xml中(不同的應用服務器均不同,WSAD中,可以進行可視化的設置),
??? <reference-descriptor>
????? <resource-description>
??????? <res-ref-name>jdbc/DBPool</res-ref-name>
??????? <jndi-name>OraDataSource</jndi-name>
????? </resource-description>
??? </reference-descriptor>
實際服務器中的JNDI名字是OraDataSource,邏輯名jdbc/DBPool只是用來和它作映射的,這樣做的好處是為了提高可移植性,移植的時候只需要把配置文件改一下就可以,而應用程序可不用改動。

假如你寫了一個一般的應用程序,想直接通過JNDI來獲取數據源,那么直接lookup(“mytest”)就可以了(假如服務器上的JNDI為mytest),用第一種寫法反而會報錯的。

轉載于:https://my.oschina.net/play/blog/15988

總結

以上是生活随笔為你收集整理的[转]理解JNDI中 java:comp/env/jdbc/datasource 与 jdbc...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。