走自己的路

          路漫漫其修遠兮,吾將上下而求索

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            50 隨筆 :: 4 文章 :: 118 評論 :: 0 Trackbacks

          在jdbc中,XAConnection和Connection是沒有繼承關系的,在jms中XAConnection是繼承Connection接口的。同樣XADataSource和Datasource也是相應的關系。

          我們在使用jdbc時,如果是managed  datasource,配置在配置文件中,如在oc4j data-sources.xml中,有下面這段配置:


              <managed-data-source name="MIFSystemLogXADataSource"
                  connection-pool-name
          ="MIFSysLogXAConnectionFactory"
                  jndi-name
          ="jdbc/mifXAStatusLog" tx-level='global'/> <!-- tx-level='global' -->
              
          <connection-pool
                  
          name="MIFSysLogXAConnectionFactory">
                  
          <connection-factory
                      
          factory-class="oracle.jdbc.xa.client.OracleXADataSource" user="gavin"
                      password
          ="gavin" url="jdbc:oracle:thin:@luga:1521:lugadb">
                  
          </connection-factory>
              
          </connection-pool>


          但是在java代碼我們使用時,是這樣的:
          DataSource dataSource = (DataSource) context
                                      .lookup(jdbc/mifXAStatusLog);

          Connection connection = dataSource.getConnection();

          lookup出來的DataSource的實現類是:oracle.sql.oc4j.ManagedDataSource,它是實現DataSource接口的,和XADataSource無關,然后get出來的是Connection和XAConnection無關,但是拿它做操作確是和XAConnection的效果相同,說明拿出來的可能是一個dynamic proxy,它是實現Connection接口,完成XAConnection的功能。為什么要這樣做呢,就是方便我們通過配置文件更改,修改了配置文件,從xa到非xa,從非xa到xa,代碼不需要重修修改。所以只能都拿出Connection來了。但是如果XAConnection繼承Connection接口,這樣拿出來的即使是Connection,通過多態我們不更好理解嗎? 為什么當初寫規范時,不讓 XADataSource繼承DataSource,讓XAConnection繼承Connection呢?

          posted on 2008-10-31 21:33 叱咤紅人 閱讀(650) 評論(0)  編輯  收藏 所屬分類: J2SE and JVM Other Java and J2EE frameworks
          主站蜘蛛池模板: 通州市| 梨树县| 方山县| 哈巴河县| 吉木乃县| 吉林市| 淮南市| 徐汇区| 方城县| 成都市| 洛宁县| 绥芬河市| 马鞍山市| 迁西县| 剑川县| 曲阜市| 固阳县| 惠来县| 玉田县| 双桥区| 宁城县| 长葛市| 澜沧| 鄱阳县| 钦州市| 高碑店市| 邹城市| 峨眉山市| 澜沧| 基隆市| 饶阳县| 临江市| 溧阳市| 桐庐县| 赤壁市| 龙井市| 灌南县| 巍山| 淳化县| 荆州市| 于都县|