Tomcat6.0的JNDI使用方法(连接池)

原文http://www.cnblogs.com/shyy/archive/2013/03/12/2956046.html

 

 最近有项目用到JNDI,为了方便的更改数据库和环境,好吧,那我就来学习下,顺便分享下方法,网上的方法乱七八糟,看的我眼都晕了。以下我提供的方法绝对是我本人试过可用的,要不发上来被你看到了,估计会被你骂。囧……

先让大家看下我的项目图:

一、我们先找到tomcat6.0conf目录下的context.xml更改里面的内容:

 1 <?xml version='1.0' encoding='utf-8'?>
 2 <Context>
 3 <WatchedResource>WEB-INF/web.xml</WatchedResource>
 4     <Resource name="jdbc/mysqldb"
 5        auth="Container"
 6        type="javax.sql.DataSource"
 7        driverClassName="com.mysql.jdbc.Driver"
 8        url="jdbc:mysql://localhost:3306/test"
 9        username="root"
10        password="123456"
11        maxActive="4"
12        maxIdle="2"
13        maxWait="-1"  />
14 <ResourceLink global="mysqldb" name="mysqldb" type="javax.sql.DataSource"/>
15 </Context>  

其他的全删掉,只要替换成我上面这样的就可以。

参数解释:

name 为当前数据源JNDI的名字,可以随意设定;

auth 为验证方式;

type 资源类型;

driverClassName 为Oracle驱动引用;

maxActiv 为连接池最大激活的连接数,设为0表示无限制;

maxIdle 为连接池最大空闲的连接数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制;

maxWait 为连接最大的等待时间,单位毫秒,如果超过此时间将接到异常。设为-1表示无限制;

username 为oracle数据库的一个用户名;

password 为username的密码;

url 为连接oracle的连接地址;

 

二、新建个项目JNDIPro,名字就叫这个啦。

 

三、里面建个类ConnectionPool.java

 

 1 package com.shyy.jndi;
 2
 3 import java.sql.Connection;
 4
 5 import javax.naming.Context;
 6 import javax.naming.InitialContext;
 7 import javax.sql.DataSource;
 8
 9 public class ConnectionPool {
10     private static Connection conn;
11
12     public static Connection getConn(){
13         try{
14             Context ctx = new InitialContext();
15             DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysqldb");
16             conn = ds.getConnection();
17         }catch(Exception e){
18             e.printStackTrace();
19         }
20         return conn;
21     }
22 }  

四、网上有的人说要配置下项目的WebRoot/web-inf下的web.xml文件,如下,我自己没有配置也运行成功了(大家可以省略,如果不行再加上,我不敢保证所有的环境都和我的一样)

在<web-app></web-app>中间配置,

1 <resource-ref>
2 <description>DB Connection test</description>
3 <res-ref-name>jdbc/mysqldb</res-ref-name>
4 <res-type>javax.sql.DataSource</res-type>
5 <res-auth>Container</res-auth>
6  </resource-ref>   

五、现在我们来写个JSP页面测试下,如下代码:

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ page import="com.shyy.jndi.ConnectionPool,java.sql.Connection,java.sql.*" %>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>测试JNDI连接</title>
 9 </head>
10 <body>
11 <%
12 ConnectionPool conn = new ConnectionPool();
13 Connection connconns = conn.getConn();
14 if(null!=conns){
15     out.println("数据库连接状态:<b>OK</b><hr />");
16     PreparedStatement pst = conns.prepareStatement("SELECT * FROM USER_INFO");
17     ResultSet rs = pst.executeQuery();
18     while(rs.next()){
19         int id =rs.getInt("ID");
20         String name = rs.getString("NAME");
21         String sex = rs.getString("SEX");
22         String telPhone = rs.getString("TELPHONE");
23         out.println("<b>id:</b>"+id+"<br /><b>姓名:</b>"+name+"<br /><b>性别:</b>"+sex+"<br /><b>手机号:</b>"+telPhone+"<hr />");
24     }
25 }else{
26     out.println("数据库连接状态:NO");
27 }
28 %>
29 </body>
30 </html>

六、启动tomcat,运行结果如下:

OK,大功告成。不行的同学仔细对照上面的步骤看下,反正我是成功啦。

本文出自:http://www.shuyangyang.com.cn/jishuliangongfang/Javabiancheng/2013-03-10/64.html

转载请保留此信息!

时间: 2024-09-20 03:59:24

Tomcat6.0的JNDI使用方法(连接池)的相关文章

Tomcat 6.0的JNDI使用方法

最近有项目用到JNDI,为了方便的更改数据库和环境,好吧,那我就来学习下,顺便分享下方法,网上的方法乱七八糟,看的我眼都晕了.以下我提供的方法绝对是我本人试过可用的,要不发上来被你看到了,估计会被你骂.囧-- 先让大家看下我的项目图: 一.我们先找到tomcat6.0conf目录下的context.xml更改里面的内容: <?xml version='1.0' encoding='utf-8'?> <Context> <WatchedResource>WEB-INF/w

Tomcat6.x+struts1.x+MySQL5.x连接池问题

1.在项目的WebRoot/META-INF下建context.xml文件,注意必须在该目录下,Tomcat会自动找这个文件,Tomcat6.0以后就不用在web.xml中配置了: <?xml version="1.0" encoding="UTF-8"?> <Context reloadable="true" crossContext="true"> <Resource name="j

Apache Geronimo JNDI命名和Java资源连接池,第1部分: 数据源连接

利用 JNDI 访问数据源.Java 消息服务.邮件会话和 URL 连接的连接池 了解 JNDI JNDI 是一种应用程序编程接口 (API) 或库,它为应用程序提供了将名称与对象关联起来以及根据对象的名称在目录中查找对象的方法.本文是系列教程的第一部分,阅读本文可以让您了解如何将 Geronimo.JNDI 与数据源连接池相互关联起来,如何构建数据源连接,以及如何利用 JNDI 在一个简单的 Geronimo 应用程序(称为 Customer Service 实用程序)内访问该连接. 数据源

DBCP、C3P0、Proxool 、 BoneCP开源连接池的比较(完全转载)

本文章完全为转载内容. 转载地址:http://blog.csdn.net/july_2/article/details/18843419 转载的原因是,好好的一篇文章,他 给复制了N编.    简介   使用评价  项目主页  DBCP DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序用使用 可以设置最大和最小连接,连接等待时间等,基本功能都有,此连接池的持续运行的稳定性还是可以,不过速度稍慢,在大并发量的压力下稳定性有所下降,此

轻松把玩HttpClient之封装HttpClient工具类(八),优化启用Http连接池策略

       写了HttpClient工具类后,有人一直在问我怎么启用http连接池,其实我没考虑过这个问题.不过闲暇的时候,突然间想起了这个问题,就想把这个问题搞一搞.        之前没用过,但是理解起来应该不算难.作为一个Coder,就算没用过http连接池,但是肯定用过数据库连接池.二者的功能是类似的,就是把建立链接和断开链接的时间节省下来.众所周知,http建立链接是需要3次握手,了解的深入一些的,还知道断开链接需要4次握手.这些操作都是自动完成的,如果我们把这些建立和断开链接的时间

用连接池提高Servlet访问数据库的效率(2)

servlet 三.类DBConnectionPool说明 该类在209至345行实现,它表示指向某个数据库的连接池.数据库由JDBC URL标识.一个JDBC URL由三部分组成:协议标识(总是jdbc),驱动程序标识(如 odbc.idb.oracle等),数据库标识(其格式依赖于驱动程序).例如,jdbc:odbc:demo,即是一个指向demo数据库的JDBC URL,而且访问该数据库要使用JDBC-ODBC驱动程序.每个连接池都有一个供客户程序使用的名字以及可选的用户帐号.密码.最大连

Hibernate程序使用WAS连接池提交事务时出现NullPointerExceptio

Hibernate应用程序部署到WebSphere Application Server 5.1上,使用WAS的连接池,程序在处理了比较多的 session.save(object)操作之后,在执行提交事物 trans.commit()之时出现以下异常 java.lang.NullPointerException at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431) at oracle.jdbc.dbaccess.DBDataSetI

tomcat 几种连接池配置代码(包括tomcat5.0,tomcat5.5x,tomcat6.0)_Tomcat

Tomcat6.0连接池配置 1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置: 复制代码 代码如下: <Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url=" jdbc:or

Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析

在使用 Tomcat服务器 + SpringFramework 进行JavaEE项目的开发部署的时候可以在Tomcat的配置文件中进行JDBC数据源的配置,具体步骤如下(这里省略了工程的建立步骤):   1) 添加如下代码到tomcat的conf目录下的server.xml中: Xml代码   <Context>        <Resource name="jdbc/demoDB" auth="Container"        type=&qu