Tomcat6配置JNDI(Oracle数据库)

1. 配置Oracle JDBC Driver。将classes111.jar(Oracle8i)或classes12.jar(Oracle9i)或ojdbc14.jar(Oracle10g)拷贝到$CATALINA_HOME/lib(或Windows系统中%CATALINA_HOME%\lib)目录下。

注意:老版本的Drivers可能是*.zip或者是*.jar的文件,Tomcat只会使用$CATALINA_HOME/lib目录下的*.jar文件,因此需要把classes111.zip或classes12.zip文件rename为classes111.jar以及classes12.jar文件,因为jar文件就是zip文件,所以没有必要去unzip这些zip文件再打成jar文件。

另外:Oracle9i及以后的版本应该使用oracle.jdbc.OracleDriver而不建议使用oracle.jdbc.driver.OracleDriver,因为Oracle已经声明oracle.jdbc.driver.OracleDriver已经不再建议使用,并且Oracle也将不会提供后续主要版本对于oracle.jdbc.driver.OracleDriver的服务。

2. 修改Tomcat的server.xml文件,主要内容如下

<Context docBase="niniapp" path="/niniapp" reloadable="true" source="org.eclipse.jst.jee.server:qprlzy">
<Resource name="JNDI_NINIAPP" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="nini" password="nini" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@192.168.2.9:1521:orcl"/>
</Context>

在这里添加的数据源的名字为JNDI_NINIAPP,username是数据库用户名;password是数据库中该用户名对应的密码;driverClassName是数据库驱动;maxIdle是最大空闲数,即数据库连接的最大空闲时间,超过空闲时间,数据库连接将被标记为不可用,然后被释放掉,如果设为0,则表示无限制;maxActive是连接池中最大数据库连接数,如果设为0,则表示无限制;maxWait是最大建立连接等待时间,如果超过次时间就会报异常,如果设为-1,则表示无限制。

我师父给我推荐的blog上也提到在可以这样写:

<Context docBase="niniapp" path="/qprlzy" reloadable="true" source="org.eclipse.jst.jee.server:qprlzy">
<Resource name="JNDI_NINIAPP" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="JNDI_NINIAPP">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.2.9:1521:orcl</value>
</parameter>
<parameter>
<name>username</name>
<value>nini</value>
</parameter>
<parameter>
<name>password</name>
<value>nini</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
</ResourceParams>
<ResourceLink global="JNDI_NINIAPP" name="JNDI_NINIAPP" type="javax.sql.DataSource"/>
</Context>

我试过了,两种写法都可以成功。当然,我看还有通过Tomcat的web应用管理界面(Tomcat Web Server Administration Tool)来配置JNDI的方法,不过我没有试验过哈。

3. 有人说还要配web.xml,我不用配就OK,有哥们说如果不进行一下配置的话,Tomcat4配置连接池就会失败,这是Tomcat4的bug吗?偶不关心啦!不过如果要配置的话,则需要在E;\niniapp\WEB\WEB-INF\web.xml中加入如下内容:

<web-app>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

其中,res-ref-name是数据源名字,与上面server.xml中所配置的属性name的值。

4. 代码样例:

Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jad.can

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值