您的位置:首页 > 运维架构 > Tomcat

Jndi技术----与数据库的连接(tomcat)

2011-11-21 21:48 351 查看
 
Jndi技术----与数据库的连接(tomcat)
一  jndi技术简介

(1)JNDI(Java Naming and Directory Interface),Java命名和目录接口,它对应于J2SE中的javax.naming包,

(2)这套API的主要作用在于:它可以把Java对象放在一个容器中(JNDI容器),并为容器中的java对象取一个名称,以后程序想获得Java对象,只需通过名称检索即可。

(3)其核心API为Context,它代表JNDI容器,其lookup方法为检索容器中对应名称的对象。

二  代码分析

    提示:因为是测试tomcat的使用,所以是建的一个servelt.java类,代码如下:

1.    配置文件中是与数据库的连接
<Context>
<!-- name属性是和数据库连接池相关联的,可 通过 该名字查找数据库连接池对象 -->
    <Resource name ="jdbc/TestDB"
              auth="Container"
              type="javax.sql.DataSource"
              driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/jdbc"
              username="root"
              password="qiao"
              maxActive="50"
              maxIdle="10"/>
</Context>
2.    调用xml文件并使用
   public void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {

       try {
           //初始化Jndi容器  Context是接口
           Context initCtx = new InitialContext();
           //检索web服务器重的Jndi
           Context envCtx = (Context) initCtx.lookup("java:comp/env");
           //从容器中查找数据库的连接池
           DataSource ds = (DataSource) envCtx.lookup("jdbc/TestDB");
           Connection con = ds.getConnection();
           System.out.println(con);
          
           //得到数据库的元数据对象
           DatabaseMetaData meta = con.getMetaData();
           //得到产品号
           System.out.println(meta.getDatabaseProductName());
           //驱动名称
           System.out.println(meta.getDriverName());
           //url地址
           System.out.println(meta.getURL());
          
          
       } catch (NamingException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (SQLException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
    }

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息