zoukankan      html  css  js  c++  java
  • 代码中jndi数据源的支持

    项目中基本都使用Spring框架,支持jndi还是很简单的,只需在spring配置文件中加入

    		<!-- 使用jndi配置数据源 -->
    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">  
            <property name="jndiName">  
                <value>java:comp/env/jndi数据源名称</value>  
            </property>  
        </bean>
    

     在本地开发中,一般使用tomcat,不会启动weblogic,所以,要配置context.xml以支持jndi

    路径  /WebContent/META-INF/context.xml

    内容基本如下

    <?xml version="1.0" encoding="UTF-8"?>
    <Context>
    	<Resource
    	 name="jndi数据源名称"
    	 auth="Container"
    	 type="javax.sql.DataSource"
    	 username="xx"
    	 password="xx"
    	 url="jdbc:oracle:thin:@10.10.68.248:1521:orcl"
    	 driverClassName="oracle.jdbc.driver.OracleDriver"
    	 maxIdle="10"
    	 maxWait="1000"
    	 maxActive="20"
    	/>
    </Context>
    

     web.xml可以配置

      <!-- 
    	  JNDI配置的资源引用:
    	  • res-ref-name:表示引用资源的名称
    	  • res-type:此资源对应的类型为javax.sql.DataSource
    	  • res-auth:容器授权管理
    	   -->
    	   <!--Oracle数据库JNDI数据源引用 -->
    	  <resource-ref>
    	      <description>Oracle DB Connection</description>
    	      <res-ref-name>jndi数据源名称</res-ref-name>
    	      <res-type>javax.sql.DataSource</res-type>
    	      <res-auth>Container</res-auth>
    	 </resource-ref>
    

     项目中如果不使用spring框架,代码需要兼容驱动管理与jndi的连接的方式,以提高健壮性,部分伪代码

        public Connection getConnection()
            throws SQLException
        {
            if(isJndi)
                return getJndiConnection();
            else
                return getDriverConnection();
        }
    
       private void initJndiConnection()
            throws NamingException
        {
            Context ctx = new InitialContext();
            ds = (DataSource)ctx.lookup(config.getJndi());
        }
    
        public Connection getJndiConnection()
            throws SQLException
        {
                return ds.getConnection();
        }
    
    private Connection getDriverConnection()
            throws SQLException
        {
                    Connection conn = DriverManager.getConnection(config.getUrl(), config.getUserName(), getPassword(config));
            return conn;
        }
    
  • 相关阅读:
    poj 1684 Lazy Math Instructor(字符串)
    STL内存配置器
    迭代器(iterators)
    类型萃取(type traits)
    hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包+dp)
    hdoj 1114 Piggy-Bank(完全背包+dp)
    hdoj 2546 饭卡(0-1背包)
    hdoj 2620 Bone Collector(0-1背包)
    U3d开发个人总结
    Android软键盘的用法总结
  • 原文地址:https://www.cnblogs.com/whytohow/p/5675920.html
Copyright © 2011-2022 走看看