tomcat下JNDI的配置和读取方法

 

JNDI名字与目录服务 是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。

 

 

一、TOMCAT5.0下的JNDI配置方法

如果要部署的是个WEB应用程序,则将该应用程序放在 $TOMCAT_HOME/webapps目录下,配置的JNDI数据源和读取jndi的方法如下(注意:要把连接数据库的驱动放在tomcat_home/common/lib下面

1、可以在TOMCAT_HOME/conf/Catalina/localhost下新建XXX.xml文件,XXX为所发布的WEB应用程序的名字,如我所发布的WEB应用程序是JndiTest,则.xml文件命名为JndiTest.xml,该文件内容为:

<?xml version='1.0' encoding='utf-8'?>

<Context debug="1" docBase="$Tomcat 5.0_Home/webapps/JndiTest(应用程序的存放的目录)" path="/JndiTest" reloadable="true" workDir="work/Catalina/localhost/JndiTest(应用程序编译后存放的位置)">

<Resource name="jdbc/test" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/test">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>4</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>5000</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>

<parameter>

<name>username</name>

<value>DataBaseUserName</value>

</parameter>

<parameter>

<name>password</name>

<value>DataBasePassword</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>2</value>

</parameter>

</ResourceParams>

</Context>

 

 

二、TOMCAT5.5/6.0下的JNDI配置方法

将如下格式的Resource描述插入JndiTest.xml<Context></Context>中:

<Resource name="jdbc/test" <!-- JNDI名称 -->   

auth="Container" <!-- 此处和web.xml中对应 -->   

type="javax.sql.DataSource" <!-- 数据源类型 -->   

password="1234" <!-- 数据库访问密码 -->   

username="demo" <!-- 数据库访问用户名 -->   

driverClassName="oracle.jdbc.OracleDriver" <!-- 数据库驱动类 -->   

url="jdbc:oracle:thin:@127.0.0.1:1521:DEMO" <!-- 数据库访问url -->   

maxActive="100" <!-- 最大活动数 -->   

maxIdle="30"   

maxWait="5000" <!-- 最大等待时间 -->   

/>   

 

 

 

三、测试、

Java连接jndi的方法

 

Context ctx = new InitialContext();

Connection conn=null;

ctx = new InitialContext();

DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/test");

conn = ds.getConnection();

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

String sql="select * from T_Test";(数据库查询语句)

ResultSet rs=stmt.executeQuery(sql);
while(rs.next()) {

out.println(rs.getString(1));

Syste.out.println(rs.getString(2));

System.out.println(rs.getString(3));

}
 rs.close();

stmt.close();

conn.close();

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值