`

Java开发(2) - Tomcat配置JNDI数据源

阅读更多

本例使用的数据库为Mysql 5.0,对于其它数据库只是修改一下相应的参数即可,
服务器是Tomcat5.5, 与之间的版本配置连接池最简便


第一步:

将驱动程序(jar包)放到tomcat安装目录下的common\lib文件夹下
第二步:

在Tomcat的webapps目录随便创建一个工程目录,例如myjdbc。在myjdbc目录下创建META-INF目录,在此目录下创建一个context.xml文件,里面的内容如下: 

<?xml version="1.0" encoding="UTF-8"?> 
<Context>

 <Resource name="jdbc/test" 
  auth
="Container"
 
  type
="javax.sql.DataSource"

         maxActive
="100" 
  maxIdle
="30"
 
  maxWait
="10000"

         username
="root" password="root" 
  driverClassName
="com.mysql.jdbc.Driver"

         url
="jdbc:mysql://localhost/test"/>
 </Context>

 

附注如下:
Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
* password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。
* 如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。


jdbc/test是数据源的名称(随意写,要和web.xml文件中 <res-ref-name>jdbc/test</res-ref-name> 一样即可),
其他的参数按照自己的实际情况进行修改,例如数据库的名称、账号、密码。

第三步:

在myjdbc目录下创建WEB-INF目录,创建web.xml文件,内容如下: 

<?xml version="1.0" encoding="UTF-8"?> 
<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 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
 
version
="2.4">
 

    <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>
 
</web-app>
 

 

说明:
<resource-ref>
<descrtiption>引用资源说明</descrtiption>
<res-ref-name>引用资源的JNDI名</res-ref-name>
<res-type>引用资源的类名</res-type>
<res-auth>管理者(Container)</res-auth><!--Container-容器管理 Application-Web应用管理-->
</resource-ref>
第四步:

写个jsp,试一下吧!

<%@ page contentType="text/html;charset=utf-8"%>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*,com.DBConnection" %>
<%
  try
  {
   
//初始化查找命名空间
   Context ctx 
= new
 InitialContext(); 
   
//InitialContext ctx = new
 InitialContext();亦可 
   
//找到DataSource,对名称进行定位java:comp/
env是必须加的,后面跟你的DataSource名
   DataSource ds 
= (DataSource)ctx.lookup("java:comp/env/jdbc/test"
);
   
//
取出连接
   Connection conn 
=
 ds.getConnection();
System.out.println(
"connection pool connected !!"
);   
  } catch (NamingException e) {
   System.out.println(e.getMessage());
  } catch (SQLException e) {
   e.printStackTrace();
  }finally
  {
   
//
注意不是关闭,是放回连接池.
   conn.close();
  }

}
%>


或写个JSP用标签库测试一下:

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ 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 authors
</sql:query>

<html>
  <head>
    <title>DB Test</title>
  </head>
  <body>
<c:forEach var="row" items="${rs.rows}">
    ${row.city}<br/>
</c:forEach>
  </body>
</html>

 以下是配置JNDI的其他方法,个人不建议使用,因为修改服务器的
server.xml和web.xml,如果有一点错误,你的容器就会崩溃~

注:连接数据源的方法还有很多,在这里我简要说之:
比如说第二步还可以这么做:

在/tomcat/conf/Catalina/localhost(或其它主机名)/中添加以
虚拟目录名称(你的工程名)命名的XML文件来配置context.
比如我的主机下有个目录dbpool其地址为tomcat/webapps/test我可以这样来配置这个上下文:
在tomcat/conf/Catalina/localhost/目录下创建test.xml文件,内容和上面一样.

还可以:
在/tomcat/conf/server.xml中<host></host>标签之间添加
 

<Context path="/test" docBase="test"
        debug
="5" reloadable="true" crossContext="true">
  <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
               maxActive
="100" maxIdle="30" maxWait="10000"
               username
="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url
="jdbc:mysql://localhost/langzhizun"/>
</Context>

 

其中path是你的工程路径(相对或绝对亦可),其中docBase="test"说明,此主机已经指向到webapps目录下了,回头
来看test这个上下文,它实际目录是位于webapps的目录下的,所以
在Context中我们可以将docBase直接设置为test了。如果它在webapps/dbpool/test下,则设置为dbpool/test就可以了。

附:JNDI——Java Naming and Directory Interface是一套提供naming和 directory功能的 API,
Java应用程式开发者透过使用 JNDI,在naming和 directory方面的应用上就有了共通的准则.

分享到:
评论

相关推荐

    JNDI数据源配置(tomcat)

    Tomcat 是一个流行的 Java Web 服务器,配置 JNDI 数据源可以实现数据库连接的复用和共享。 在 Tomcat 中,配置 JNDI 数据源有两种方式:单个应用独享数据源和全局 JNDI 数据源。 1. 单个应用独享数据源 在 ...

    tomcat配置jndi数据源

    Tomcat 配置 JNDI 数据源 Tomcat 是一个流行的 Java Web 服务器,JNDI(Java Naming and Directory Interface)是 Java 中的一种命名和目录接口规范。Tomcat 中的 JNDI 数据源是指将数据库连接信息注册到 JNDI ...

    tomcat配置JNDI数据源

    【标题】:“Tomcat配置JNDI数据源” 【描述】:“在Tomcat服务器上配置JNDI数据源,特别是通过DBCP连接池的方式” 【标签】:“tomcat,配置,JNDI数据源” 【内容】:配置JNDI数据源在Java Web应用程序中是一个...

    Tomcat-5配置JNDI数据源

    【标题】:“Tomcat-5配置JNDI数据源” 【描述】:“配置Tomcat 5.5及以上版本中的JNDI数据源” 【标签】:“JNDI数据源”、“数据源”、“JNDI” 【正文】: 在Java应用服务器如Tomcat中,JNDI(Java Naming ...

    intellij idea使用tomcat开发时自动部署jndi数据源

    在这个场景中,“intellij idea使用tomcat开发时自动部署jndi数据源”是一个重要的知识点,它涉及到如何在IDE中配置和管理数据库连接,以便于在应用运行时动态地查找和使用数据源。 JNDI(Java Naming and ...

    java中使用tomcat提供的JNDI数据源

    ### Java中使用Tomcat提供的JNDI数据源详解 #### 一、JNDI简介与重要性 Java Naming and Directory Interface(JNDI)是一种Java应用程序查找和访问各种命名及目录服务的API。它允许Java应用程序查找并使用远程...

    Tomcat学习笔记 - 【使用JNDI数据源】

    2. **配置环境**:在应用的上下文配置文件(如Spring的`applicationContext.xml`或Java配置类)中,声明JNDI数据源的查找。例如,使用Spring时: ```xml &lt;jee:jndi-lookup id="dataSource" jndi-name="java:comp/...

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    标题中的“Tomcat6.0配置JNDI数据源完整例子”是指在Apache Tomcat 6.0服务器中设置Java Naming and Directory Interface (JNDI)数据源的过程。JNDI是一个API,它允许应用程序查找和使用命名服务,如数据库连接池。...

    Tomcat6.0 JNDI数据源经典实例

    总结来说,这个Tomcat 6.0 JNDI数据源经典实例提供了从配置到使用的全过程,包括了必要的文件和脚本,便于开发者理解和实践JNDI数据源在实际项目中的应用。正确配置和使用JNDI数据源能有效管理和优化数据库连接,...

    配置 JNDI 数据源

    2. Tomcat配置:在Tomcat的`conf/server.xml`文件中,需要添加一个GlobalNamingResources下的DataSource元素,定义JNDI数据源。例如: ```xml ... type="javax.sql.DataSource" driverClassName=...

    eclipse+mysql+tomcat配置JNDI

    2. **在Tomcat中配置JNDI数据源**: 在Tomcat的`conf/server.xml`文件中,找到`&lt;GlobalNamingResources&gt;`标签,然后添加一个新的`&lt;Resource&gt;`标签来定义数据源。例如: ```xml type="javax.sql.DataSource" ...

    Tomcat中配置jndi数据源连接池(自己写的).doc

    【Tomcat中配置jndi数据源连接池详解】 在Java Web应用中,Tomcat作为常用的Servlet容器,常被用于部署和运行Web应用程序。为了管理数据库连接,我们常常需要配置数据源连接池,以实现高效的数据库连接管理和复用。...

    Tomcat jndi 配置数据源过程

    总结,通过上述步骤,你已经在Tomcat中成功配置了一个JNDI数据源,使得应用程序可以通过全局名字方便地获取和释放数据库连接。这种配置方式提高了代码的可复用性和可维护性,同时利用连接池优化了数据库操作的性能。

    JNDI配置数据源在java web开发中的使用

    在Java EE环境中,数据源通常由应用服务器提供,如Tomcat、WebLogic、JBOSS等,它们预先配置好并注册到JNDI上下文中,供应用通过JNDI查找使用。 3. **配置数据源** 在不同的应用服务器中,配置数据源的方法略有...

    Tomcat中JNDI原理

    在Tomcat服务器中,JNDI的应用主要体现在其内置的JNDI实现——Tomcat JNDI,它允许开发者在应用中通过名称查找和使用资源,如数据源、环境变量等。本文将深入解析Tomcat 5.0中JNDI的工作原理,特别是`ContextBinding...

    tomcat配置db2数据源jar包

    为了在Tomcat中配置DB2数据源,我们需要正确地引入相应的jar包,确保Tomcat能够与DB2顺利通信。以下是关于"tomcat配置db2数据源jar包"的详细知识点: 1. **JDBC驱动**:首先,理解JDBC(Java Database Connectivity...

    tomcat配置jndi

    总结,配置Tomcat中的JNDI主要是为了方便和高效地管理数据库连接,通过在服务器端定义数据源,并在应用程序中通过JNDI查找和使用,可以极大地简化开发工作。理解并掌握这一过程对于任何使用Tomcat部署Java Web应用的...

    tomcat中配置数据源

    总的来说,理解和正确配置Tomcat中的数据源是Java Web开发中的重要一环,它关系到应用程序的性能和稳定性。通过深入学习源码和使用相关的工具,我们可以更好地理解和优化数据源的配置,从而提升整个系统的运行效率。

    Tomcat中配置数据源JNDI

    在Tomcat中配置数据源JNDI是Java Web应用开发中的一个常见任务。通过上述介绍的方法,可以根据不同的应用场景选择合适的数据源配置方案。需要注意的是,正确的配置不仅包括XML文件的编写,还包括相关驱动的正确安装...

Global site tag (gtag.js) - Google Analytics