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

 

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();

       }

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值