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

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值