JNDI配置


介绍两种方式,第一种是不依赖于tomcat的配置;第二中是依赖于tomcat的配置;但是这两种都需要在tomcat的lib包下添加所需的数据库驱动包

第一种,不依赖于tomcat的配置:

  1、把所需驱动包放到tomcat的lib包下

   2、配置web工程的web/META-INF/添加“context.xml”文件

[html] view plain copy print ?
  1. <Context>  
  2.   <!-- Default set of monitored resources -->  
  3.   <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  4.     <Resource name="jdbc/pmlf"   
  5.               type="javax.sql.DataSource"   
  6.               driverClassName="oracle.jdbc.driver.OracleDriver"   
  7.               url="jdbc:oracle:thin:@localhost:1521:orcl"  
  8.               username="GH_HN"  
  9.               password="GH_HN"  
  10.               maxIdle="10"   
  11.               maxWait="5000"   
  12.               validationQuery=""   
  13.               DatabaseName="PMLF"   
  14.               maxActive="20"/>  
  15. </Context>  


  3、 代码调用

[java] view plain copy print ?
  1. public Connection getConnection() {  
  2.     Connection conn = null;  
  3.     try {  
  4.        Context initCtx = new InitialContext();  
  5.        Context ctx = (Context) initCtx.lookup("java:comp/env");// 固定字符串 <span style="font-family: Arial, Helvetica, sans-serif;">java:comp/env</span>  
  6.        Object obj = (Object) ctx.lookup("jdbc/pmlf");  
  7.        javax.sql.DataSource ds = (javax.sql.DataSource)obj;  
  8.        conn= ds.getConnection();    
  9.        if(conn == null){  
  10.          System.out.printly("获取连接失败");  
  11.        }  
  12.          
  13.        return conn;  
  14.     }  
  15.     catch (Exception e) {    
[java] view plain copy print ?
  1. <span style="white-space:pre">  </span>e.printStackTrace();  
  2.     }  
  3.   
  4.   }  

第二中,依赖于tomcat的配置,从网上摘录,理论可以,但是没有亲自确认。

1、修改tomcat中配置文件-conf/context.xml,配置如下 

[html] view plain copy print ?
  1. <Context>  
  2.   
  3.     <!-- Default set of monitored resources -->  
  4.     <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  5.       
  6.     <!-- Uncomment this to disable session persistence across Tomcat restarts -->  
  7.     <!-- 
  8.     <Manager pathname="" /> 
  9.     -->  
  10.     <Resource name="jcptDataSourceJNDI" auth="Container" type="javax.sql.DataSource"  
  11.               username="tysp" password="12345678" driverClassName="oracle.jdbc.driver.OracleDriver"  
  12.                url="jdbc:oracle:thin:@192.168.1.52:1521:fuxing"/>  
  13.     <!-- Uncomment this to enable Comet connection tacking (provides events  
  14.          on session expiration as well as webapp lifecycle) -->  
  15.     <!-- 
  16.     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
  17.     -->  
  18.   
  19. </Context>  

2、在项目下的WEB-INF/web.xml添加配置代码

[html] view plain copy print ?
  1. <welcome-file-list>  
  2.     <welcome-file>index.jsp</welcome-file>  
  3.   </welcome-file-list>  
  4.     
  5.     <resource-ref>  
  6.         <description>Database Source</description>  
  7.         <res-ref-name>jcptDataSourceJNDI</res-ref-name>  
  8.         <res-type>javax.sql.DataSource</res-type>  
  9.         <res-auth>Container</res-auth>  
  10.     </resource-ref>  

3、将数据库驱动jar包放入tomcat的lib中

4、测试,地址引用

[java] view plain copy print ?
  1. <body>  
  2.    <%  
  3.         Context initContext = new InitialContext();  
  4.         Context envContext = (Context)initContext.lookup("java:/comp/env");  
  5.         DataSource ds = (DataSource)envContext.lookup("jcptDataSourceJNDI");  
  6.         Connection conn = ds.getConnection();  
  7.         if(conn==null){  
  8.             out.println("连接失败!");  
  9.         }else{  
  10.             out.println("连接成功!");  
  11.         }  
  12.         Statement stmt = conn.createStatement();  
  13.         ResultSet rs = stmt.executeQuery("select * from t_sys_dept");  
  14.         while(rs.next()){  
  15.             out.println("第一列:"+rs.getString(1));  
  16.         }  
  17.     %>  
  18.   </body> 

你可能感兴趣的:(JNDI配置)