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

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

2011-11-22 21:09 281 查看
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: