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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

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

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

QQ截图20130310234141.jpg

一、我们先找到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.     } 

四、网上有的人说要配置下项目的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. </body> 
  29. </html> 

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

QQ截图20130310233352.jpg

 

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


本文转自shyy8712872 51CTO博客,原文链接:http://blog.51cto.com/shuyangyang/1151537,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
Web App开发 Java 应用服务中间件
|
SQL Web App开发 关系型数据库
|
Java 数据库连接 应用服务中间件
|
Java 关系型数据库 应用服务中间件
|
SQL 关系型数据库 数据库连接
Tomcat数据源的原理,配置及使用(JNDI)
Tomcat数据源的原理,配置及使用 知识点: 1.数据源的作用及操作原理; 2.Tomcat中数据源的配置; 3.数据源的查找及使用     传统JDBC使用过程存在以下四个步骤: 1.加载驱动程序 2.
1402 0
|
关系型数据库 Apache 数据库
Spring+Tomcat的JNDI数据源连接池简单配置
使用Tomcat JNDI数据源与Spring一起使用步骤如下: 1.将数据库驱动复制到Tomcat的lib文件夹下面 2.配置Tomcat的server.xml配置文件,在GlobalNamingResources节点下面添加一个Resource节点,如下: 3.配置context.xml文件,在Context节点下面添加一个ResourceLink节点,这个name要跟server.xml里面配置的Resource的name属性保持一致。
1525 0
|
SQL 关系型数据库 MySQL
Tomcat通过JNDI方式链接MySql数据库
原文:Tomcat通过JNDI方式链接MySql数据库 拷贝MySQL的JDBC驱动到Tomcat的lib路径下 配置全局数据源或者单个Web应用的局部数据源      局部数据源      在Tomcat的conf/Catalina/localhost下的 app.
1045 0