jndi

Tomcat在启动时,会按照用户的配置,创建数据源,并把数据源对象绑定到一个名字上(用的是JNDI)。

JNDIJava Naming and DIrectory Interface JDKjavax.naming.*

JNDI就好比window系统的注册表,它是一个Map结构。key是一个由路径和名称组成的字符串,value就是绑定的一个对象。

 

利用Tomcat管理数据源

a、拷贝数据库驱动jar包到Tomcat\lib目录下

b、在应用的META-INF目录下建立一个名称为context.xml的配置文件

 

<?xml version="1.0" encoding="UTF-8"?>
<Context>
  <Resource name="jdbc/EmployeeDB"
            auth="Container"
            type="javax.sql.DataSource"
            username="root"
            password="root"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/day16"
            maxActive="8"
            maxIdle="4"/>
</Context>

 

 

 

 

c、启动Tomcat,数据源就给你建好了

 

d、在应用中如何获取数据源

 

package com.itheima.test;

import java.sql.Connection;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
/**
 * JDNI测试 
 *             java:comp/env   (java的计算机环境) :是Tomcat下jndi名字查找 规范
 * @author wangli
 *
 */
public class JdniTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        try {
            Context initCtx = new InitialContext();
            Context envCtx = (Context) initCtx.lookup("java:comp/env");
            DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB");//转化的类型就是  Resource结点的type属性
        
            Connection con = ds.getConnection();
            System.out.println(con);
            
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    

}

 

 

 

 

特别注意:不要在main方法中获取数据源,获取不到

 

posted @ 2015-12-25 10:50  白金05  阅读(138)  评论(0编辑  收藏  举报