`
spacefly
  • 浏览: 277976 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tomcat dbcp jndi 配置

    博客分类:
  • java
阅读更多

使用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 中 添加数据源:
   

<!-- The contents of this file will be loaded for each web application -->
<Context>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
	
    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
	<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
				   maxActive="100" maxIdle="30" maxWait="10000"
				   username="root" password="password" driverClassName="com.mysql.jdbc.Driver"
				   url="jdbc:mysql://localhost:3306/testit?autoReconnect=true"/>

</Context>

 

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

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd"
    version="2.4">

    <display-name>JNDI Test</display-name>

    
    <description>A test for using of JNDI</description>
 <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/test</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
 </resource-ref>
    <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>index.html</welcome-file>
    </welcome-file-list>

</web-app>

 

 

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

 

<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<sql:query var="rs" dataSource="jdbc/test">
select * from test
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>

  <h2>Results</h2>
  
<c:forEach var="row" items="${rs.rows}">
    id ${row.id}<br/>
    str ${row.str}<br/>
</c:forEach>

  </body>
</html>

 5)tomcat的jndi实用类

package dbcp;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

/**
 * @author space
 * @date Aug 12, 2008 12:57:30 PM
 */
public class TomcatDbcp {
	private static Context CTT;
	static {
		try {
			CTT = (Context) new InitialContext().lookup("java:comp/env");
		} catch (NamingException e) {
			e.printStackTrace();
			throw new RuntimeException("jndi 数据源加载失败!");
		}
	}

	/** 默认构造函数,没有创建数据源 */
	public TomcatDbcp() {
	}

	/** 参数是数据源名,创建数据源 */
	public TomcatDbcp(String resourceName) {
		setDs(resourceName);
	}

	private DataSource ds;

	public void setDs(String resourceName) {
		try {
			ds = (DataSource) CTT.lookup(resourceName);
		} catch (NamingException e) {
			e.printStackTrace();
			throw new RuntimeException("jndi 数据源创建失败!");
		}
	}

	private Connection conn;

	/** 其它类通过该方法调用 conn */
	public Connection getConn() {
		return conn;
	}

	/** 初始化conn */
	public void initConn() {
		try {
			conn = ds.getConnection();
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("获得连接失败!");
		}
	}

	/** 关闭conn */
	public void closeConn() {
		try {
			if (conn != null) {
				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		TomcatDbcp td = new TomcatDbcp("jdbc/test");
		td.initConn();
		try {
			Statement stmt = td.getConn().createStatement();
			ResultSet rs = stmt.executeQuery("select * from test limit 1 ");
			rs.first();
			System.out.println("id:" + rs.getInt(1) + ", str:" + rs.getString(2));
			td.closeConn();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}

 

6)jsp中调用tomcat dbcp实用类

 

<%@ page language="java" import="dbcp.TomcatDbcp ,java.sql.*" %>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>
  <h2>Results</h2>
<hr/>
<%
		TomcatDbcp td = new TomcatDbcp("jdbc/test");
		td.initConn();
		try {
			Statement stmt = td.getConn().createStatement();
			ResultSet rs = stmt.executeQuery("select * from test limit 1 ");
			rs.first();
			out.println("id:" + rs.getInt(1) + ", str:" + rs.getString(2));
			td.closeConn();
		} catch (SQLException e) {
			e.printStackTrace();
		}
%>
  </body>
</html>

 

分享到:
评论

相关推荐

    tomcat配置JNDI数据源

    通过JNDI配置数据源,使得数据库连接可以在多个应用之间共享,简化了应用的配置,同时提高了系统的可扩展性和可维护性。在实际开发中,还可以使用更高级的连接池实现,如C3P0、Apache DBCP2或HikariCP,它们提供了更...

    Tomcat 6.0配置数据源(DBCP)和JNDI使用

    本教程将详细讲解如何在Tomcat 6.0中配置数据源(DBCP)以及如何利用JNDI(Java Naming and Directory Interface)进行服务查找。首先,我们需要了解这两个概念的基础知识。 DBCP(Database Connection Pool)是...

    Tomcat JNDI配置

    Tomcat JNDI 配置 Tomcat JNDI 配置是 Java Web 应用程序中的一种常见配置,用于将数据库连接信息以 JNDI(Java Naming and Directory Interface)的形式存储在 Tomcat 服务器中,以便于应用程序可以通过 JNDI 来...

    tomcat6中配置JNDI方法

    ### Tomcat6中配置JNDI方法详解 #### 一、引言 在Java Web开发过程中,连接数据库是一项基础而重要的工作。常见的连接方式包括直接使用JDBC(Java Database Connectivity)以及通过JNDI(Java Naming and Directory...

    tomcat6.0中配置JNDI的DBCP连接

    在Java应用服务器中,如Tomcat 6.0,配置JNDI(Java Naming and Directory Interface)的DBCP(Database Connection Pool)连接池是管理数据库连接的重要步骤。JNDI是一个标准接口,允许应用程序查找和访问命名服务...

    Tomcat5.5 的dbcp配置

    Tomcat 5.5中的DBCP配置涉及到添加依赖库、创建数据源配置文件、配置Tomcat服务器和在应用程序中使用JNDI查找数据源。通过这些步骤,可以实现高效且可扩展的数据库连接管理,为Web应用提供稳定的数据库访问支持。在...

    Tomcat jndi 配置数据源过程

    JNDI配置数据源是将数据库连接池集成到Tomcat中的重要步骤,这样可以提高应用的性能和可维护性。下面我们将详细介绍如何在Tomcat中通过JNDI配置数据源。 首先,我们需要了解数据源是什么。数据源是一个对象,它管理...

    dbcp tomcat 配置方法 代码

    在Tomcat这样的Servlet容器中配置DBCP,可以优化应用程序的性能,减少由于创建和销毁数据库连接而产生的开销。以下是一个详细的DBCP在Tomcat中的配置方法。 首先,我们需要了解数据库连接池的基本概念。数据库连接...

    用dbcp连接池,mysql数据库,在tomcat服务器下,通过hibernate配置jndi数据源.doc

    综上所述,这个文档主要讲述了如何在Tomcat服务器上,通过Hibernate和JNDI数据源配置,使用DBCP连接池连接MySQL数据库。尽管Hibernate官方并不推荐使用DBCP,但文档仍然提供了详细的配置步骤,包括环境准备、数据库...

    JNDI tomcat

    可以通过JNDI配置数据源,实现数据库连接的高效管理和复用。 **三、JNDI的安全考虑** 1. **权限控制**:JNDI资源的访问应该受到严格的权限控制,防止未经授权的访问和滥用。 2. **防止注入攻击**:在进行JNDI查找...

    JavaEE 使用Tomcat的自带DBCP管理数据源案例

    配置Tomcat的DBCP数据源通常涉及以下几个步骤: 1. **添加依赖**:确保你的项目已经包含DBCP的依赖库。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml &lt;groupId&gt;commons-dbcp &lt;artifactId&gt;commons-...

    tomcat中配置数据源

    对于源码分析,Tomcat的数据源实现主要依赖于`org.apache.tomcat.dbcp.dbcp2.BasicDataSource`类,它是Apache Commons DBCP库的一部分。这个类提供了配置数据源的各种属性,并实现了`javax.sql.DataSource`接口,...

    DBCP 数据库连接池JNDI连接 学习笔记

    2. **JNDI配置** - 在应用服务器(如Tomcat)的`context.xml`或`server.xml`中注册JNDI数据源,将`BasicDataSource`实例绑定到一个JNDI名称下。 - 这样,应用可以通过JNDI查找这个数据源,而不是直接在代码中创建...

    Tomcat6下JNDI的配置

    在Tomcat 6这样的Servlet容器中配置JNDI,可以让应用程序更加模块化,易于管理和维护。本文将详细介绍在Tomcat 6下配置JNDI连接池的步骤。 首先,我们需要创建一个Web项目。在这个例子中,我们将项目命名为`...

    在Tomcat下配置JNDI.doc

    首先,我们需要理解Tomcat中的JNDI配置。JNDI允许我们将资源(如数据源)注册到一个全局命名空间中,这样其他应用组件可以通过名称来查找和使用这些资源。在Tomcat中,我们主要在`server.xml`配置文件中定义这些资源...

    SpringMVC+JNDI+Tomcat配置数据源

    在本文档中,我们将详细探讨如何在Tomcat环境下使用SpringMVC与JNDI配置数据源。 #### 二、Tomcat配置JNDI的三种方式 ##### 1. 单个应用独享数据源 在Tomcat的`server.xml`中为特定的应用程序配置专用的数据源,...

    Tomcat 7-dbcp配置数据库连接池详解

    总之,通过配置Tomcat的dbcp数据库连接池,可以有效地管理数据库连接,提升系统的响应速度和稳定性。在具体使用过程中,开发者需要充分理解连接池的工作原理,并根据实际需求灵活配置。同时,也要注意监控和维护,...

    tomcat jndi ssl

    1. "tomcat7.0配置JNDI数据源的几种方式.docx" - 这个文档可能详细介绍了在Tomcat 7.0中设置JNDI数据源的不同方法,包括XML配置、Context元素的使用、以及可能的第三方库(如Apache DBCP或C3P0)集成。 2. "tomcat...

    jndi配置

    ### JNDI配置详解 #### 一、JNDI简介 Java Naming and Directory Interface (JNDI) 是一种为应用程序提供命名和目录服务的 Java API。它允许开发人员以一致的方式访问多种命名和目录服务,如 DNS、LDAP 和 RMI 等...

    JAVA数据库连接池(C3P0,Druid,JNDI ,DBCP,Proxool,BoneCP)

    例如,Tomcat、JBoss等应用服务器都支持JNDI配置C3P0、DBCP等连接池。 4. DBCP(Database Connection Pool): DBCP是Apache Commons的一个项目,基于Jakarta-pool实现的数据库连接池。它简单易用,但相比于C3P0和...

Global site tag (gtag.js) - Google Analytics