JNDI配置

jndi通过容器建立连接,通过连接访问数据库,步骤如下
1、修改tomcat中配置文件-conf/context.xml,配置如下

Java代码 收藏代码
  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添加配置代码

Java代码 收藏代码
  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代码 收藏代码
  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>