tomcat dbcp jndi 配置

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:
2008-08-11(http://spaceflysky-163-com.javaeye.com/blog/226650)

tomcat dbcp jndi 配置


使用tomcat6,mysql6


1)添加jar包
tomcat6中 TOMCAT_HOME/lib 下是公用jar包

dbcp需要3个jar包:Jakarta-Commons DBCP,Jakarta-Commons Collections,Jakarta-Commons Pool,
但是tomcat6已经用1个tomcat-dbcp.jar包含了这3个jar包,该包在 TOMCAT_HOME/lib 下,因此在tomcat下不需要再添加dbcp相关的3个包;

将mysql-connector-java-5.1.6-bin.jar 拷贝到 TOMCAT_HOME/lib 下;

 

 

2)添加数据源
在 TOMCAT_HOME/conf/context.xml 中 添加数据源:
   

Xml代码 
  1. <!-- The contents of this file will be loaded for each web application -->  
  2. <Context>  
  3.   
  4.     <!-- Default set of monitored resources -->  
  5.     <WatchedResource>WEB-INF/web.xml</WatchedResource>  
  6.       
  7.     <!-- Uncomment this to disable session persistence across Tomcat restarts -->  
  8.     <!-- 
  9.     <Manager pathname="" /> 
  10.     -->  
  11.   
  12.     <!-- Uncomment this to enable Comet connection tacking (provides events  
  13.          on session expiration as well as webapp lifecycle) -->  
  14.     <!-- 
  15.     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
  16.     -->  
  17.     <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"  
  18.                    maxActive="100" maxIdle="30" maxWait="10000"  
  19.                    username="root" password="password" driverClassName="com.mysql.jdbc.Driver"  
  20.                    url="jdbc:mysql://localhost:3306/testit?autoReconnect=true"/>  
  21.   
  22. </Context>  

 

3)在web.xml 中引用数据源

 

Xml代码 
  1. <?xml version="1.0" encoding="ISO-8859-1"?>  
  2.   
  3. <web-app xmlns="http://java.sun.com/xml/ns/j2ee"  
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"  
  6.     version="2.4">  
  7.   
  8.     <display-name>JNDI Test</display-name>  
  9.   
  10.       
  11.     <description>A test for using of JNDI</description>  
  12.  <resource-ref>  
  13.       <description>DB Connection</description>  
  14.       <res-ref-name>jdbc/test</res-ref-name>  
  15.       <res-type>javax.sql.DataSource</res-type>  
  16.       <res-auth>Container</res-auth>  
  17.  </resource-ref>  
  18.     <welcome-file-list>  
  19.       <welcome-file>index.jsp</welcome-file>  
  20.       <welcome-file>index.html</welcome-file>  
  21.     </welcome-file-list>  
  22.   
  23. </web-app>  

 

 

4)在jsp(或java)中使用数据源

 

Java代码 
  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>  
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
  3.   
  4. <sql:query var="rs" dataSource="jdbc/test">  
  5. select * from test  
  6. </sql:query>  
  7.   
  8. <html>  
  9.   <head>  
  10.     <title>DB Test</title>  
  11.   </head>  
  12.   <body>  
  13.   
  14.   <h2>Results</h2>  
  15.     
  16. <c:forEach var="row" items="${rs.rows}">  
  17.     id ${row.id}<br/>  
  18.     str ${row.str}<br/>  
  19. </c:forEach>  
  20.   
  21.   </body>  
  22. </html>  

 5)tomcat的jndi实用类

Java代码 
  1. package dbcp;  
  2.   
  3. import java.sql.Connection;  
  4. import java.sql.ResultSet;  
  5. import java.sql.SQLException;  
  6. import java.sql.Statement;  
  7. import javax.naming.Context;  
  8. import javax.naming.InitialContext;  
  9. import javax.naming.NamingException;  
  10. import javax.sql.DataSource;  
  11.   
  12. /** 
  13.  * @author space 
  14.  * @date Aug 12, 2008 12:57:30 PM 
  15.  */  
  16. public class TomcatDbcp {  
  17.     private static Context CTT;  
  18.     static {  
  19.         try {  
  20.             CTT = (Context) new InitialContext().lookup("java:comp/env");  
  21.         } catch (NamingException e) {  
  22.             e.printStackTrace();  
  23.             throw new RuntimeException("jndi 数据源加载失败!");  
  24.         }  
  25.     }  
  26.   
  27.     /** 默认构造函数,没有创建数据源 */  
  28.     public TomcatDbcp() {  
  29.     }  
  30.   
  31.     /** 参数是数据源名,创建数据源 */  
  32.     public TomcatDbcp(String resourceName) {  
  33.         setDs(resourceName);  
  34.     }  
  35.   
  36.     private DataSource ds;  
  37.   
  38.     public void setDs(String resourceName) {  
  39.         try {  
  40.             ds = (DataSource) CTT.lookup(resourceName);  
  41.         } catch (NamingException e) {  
  42.             e.printStackTrace();  
  43.             throw new RuntimeException("jndi 数据源创建失败!");  
  44.         }  
  45.     }  
  46.   
  47.     private Connection conn;  
  48.   
  49.     /** 其它类通过该方法调用 conn */  
  50.     public Connection getConn() {  
  51.         return conn;  
  52.     }  
  53.   
  54.     /** 初始化conn */  
  55.     public void initConn() {  
  56.         try {  
  57.             conn = ds.getConnection();  
  58.         } catch (SQLException e) {  
  59.             e.printStackTrace();  
  60.             System.out.println("获得连接失败!");  
  61.         }  
  62.     }  
  63.   
  64.     /** 关闭conn */  
  65.     public void closeConn() {  
  66.         try {  
  67.             if (conn != null) {  
  68.                 conn.close();  
  69.             }  
  70.         } catch (SQLException e) {  
  71.             e.printStackTrace();  
  72.         }  
  73.     }  
  74.   
  75.     public static void main(String[] args) {  
  76.         TomcatDbcp td = new TomcatDbcp("jdbc/test");  
  77.         td.initConn();  
  78.         try {  
  79.             Statement stmt = td.getConn().createStatement();  
  80.             ResultSet rs = stmt.executeQuery("select * from test limit 1 ");  
  81.             rs.first();  
  82.             System.out.println("id:" + rs.getInt(1) + ", str:" + rs.getString(2));  
  83.             td.closeConn();  
  84.         } catch (SQLException e) {  
  85.             e.printStackTrace();  
  86.         }  
  87.     }  
  88. }  

 

6)jsp中调用tomcat dbcp实用类

 

Java代码 
  1. <%@ page language="java" import="dbcp.TomcatDbcp ,java.sql.*" %>  
  2.   
  3. <html>  
  4.   <head>  
  5.     <title>DB Test</title>  
  6.   </head>  
  7.   <body>  
  8.   <h2>Results</h2>  
  9. <hr/>  
  10. <%  
  11.         TomcatDbcp td = new TomcatDbcp("jdbc/test");  
  12.         td.initConn();  
  13.         try {  
  14.             Statement stmt = td.getConn().createStatement();  
  15.             ResultSet rs = stmt.executeQuery("select * from test limit 1 ");  
  16.             rs.first();  
  17.             out.println("id:" + rs.getInt(1) + ", str:" + rs.getString(2));  
  18.             td.closeConn();  
  19.         } catch (SQLException e) {  
  20.             e.printStackTrace();  
  21.         }  
  22. %>  
  23.   </body>  
  24. </html>  
本文转自kenty博客园博客,原文链接http://www.cnblogs.com/kentyshang/archive/2009/02/25/1397766.html如需转载请自行联系原作者

kenty
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
XML 应用服务中间件 Apache
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
|
4月前
|
Java 应用服务中间件 Maven
Maven - 两种Tomcat插件的配置
Maven - 两种Tomcat插件的配置
136 0
|
5月前
|
XML 应用服务中间件 数据格式
windows下Tomcat8.0解压版安装并配置环境变量
windows下Tomcat8.0解压版安装并配置环境变量
95 0
|
15天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
4月前
|
Java 应用服务中间件 容器
SpringBoot配置外部Tomcat并打war包
SpringBoot配置外部Tomcat并打war包
70 0
|
9天前
|
运维 Java 应用服务中间件
Tomcat详解(七)——Tomcat使用https配置实战
Tomcat详解(七)——Tomcat使用https配置实战
21 4
|
4月前
|
Java 应用服务中间件
SpringBoot 项目war包部署 配置外置tomcat方法
SpringBoot 项目war包部署 配置外置tomcat方法
71 0
|
23天前
|
Java 应用服务中间件
Springboot启动的时候初始化的线程池默认配置tomcat
Springboot启动的时候初始化的线程池默认配置tomcat
13 1
|
3月前
|
应用服务中间件 Windows
Tomcat安装和配置
Tomcat安装和配置
32 0
|
4月前
|
Java 应用服务中间件 Spring
Tomcat【部署 01】安装包版本说明+安装+参数配置+启动(JDK11+最新版apache-tomcat-10.0.12)
Tomcat【部署 01】安装包版本说明+安装+参数配置+启动(JDK11+最新版apache-tomcat-10.0.12)
63 0