`

[转]Tomcat配置JNDI数据源

    博客分类:
  • Java
阅读更多
[标题]:[转]Tomcat配置JNDI数据源
[时间]:2009-6-12
[摘要]:在Tomcat中配置JNDI数据源
[关键字]:MySQL,JDBC,Driver,Tomcat,JNDI,DataSource
[环境]:Tomcat6,mysql-connector-java-5.1.7-bin.jar
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys

[正文]:
1、将MySQL JDBC驱动(mysql-connector-java-5.1.7-bin.jar)放到%TOMCAT_HOME%"lib目录下。注意,不要放到webapps/myjdbc的WEB-INF目录中,否则可能出现"SQL Exception:Cannot load JDBC driver class 'com.mysql.jdbc.Driver' "。

2、在Tomcat的webapps目录创建一个工程目录,例如myjdbc。在myjdbc目录下创建META-INF目录,在此目录下创建一个context.xml文件,里面的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Resource name="jdbc/mysql_ds_db"
            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:3306/db"/>
</Context>

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

3、在myjdbc目录下创建WEB-INF目录,创建web.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
    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">

<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/mysql_ds_db</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>

4、测试
JSP测试:
<%@page contentType="text/html;charset=GBK" %>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*" %>
2009-6-9
测试Tomcat JNDI 数据源:<br/>
<%
Connection conn = null;
  try{
   //初始化查找命名空间
   Context ctx = new InitialContext();
   //InitialContext ctx = new InitialContext();亦可
   //找到DataSource,对名称进行定位java:comp/env是必须加的,后面跟你的DataSource名
   DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysql_ds_db");
   //取出连接
   conn = ds.getConnection();
    out.println("connection pool connected !!");
  } catch (NamingException e) {
    out.println("Naming Exception:" + e.getMessage());
  } catch (SQLException e) {
   out.println("SQL Exception:" + e.getMessage());
  }finally{
   if(conn != null)
       conn.close();//注意不是关闭,是放回连接池.
  }
%>

或写个JSP用标签库测试一下:
<%@page contentType="text/html;charset=GBK" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<sql:setDataSource
    dataSource="jdbc/mysql_ds_db"
    var="ds" />

<sql:query var="query" dataSource="${ds}" >
    select * from bookauthor
</sql:query>

<c:forEach var="row" items="${query.rows}">
    authorId:<c:out value="${row.authorId}" /><br/>
    authorName:<c:out value="${row.authorName}" /> <br/>
    <br/>
</c:forEach>


[参考资料]:
[1] Tomcat配置JNDI数据源: http://www.blogjava.net/supercrsky/archive/2009/05/01/174931.html
[2] Tomcat 6.0 设置 JNDI 数据源 : http://www.blogjava.net/Michael-Q/archive/2008/03/26/188867.html

分享到:
评论

相关推荐

    在Tomcat配置JNDI数据源的三种方式

    在Tomcat配置JNDI数据源的三种方式

    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应用程序中是一个...

    tomcat8 JNDI数据源加密

    TOMCAT8 JNDI对用户名和密码加密

    Tomcat配置JNDI数据源的N种方法

    Tomcat配置JNDI数据源的N种方法

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

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

    tomcat jndi数据源解密factory

    自定义jndi数据源factory类,用于解密jndi中的加密数据,解密方式为DES,具体可根据实际需求修改。

    Tomcat6.0 JNDI数据源经典实例

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

    tomcat中配置jndi 数据源

    tomcat中配置jndi 数据源!!!

    JNDI数据源配置(tomcat)

    "JNDI 数据源配置(tomcat)" JNDI(Java Naming and Directory Interface)是一种Java API,用于访问命名和目录服务。JNDI 数据源配置是 Java Web 应用程序中常用的数据库连接方式。Tomcat 是一个流行的 Java Web ...

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

    总的来说,配置Tomcat 6.0的JNDI数据源是一个涉及多个配置文件和代码段的过程。正确配置后,它将使你的应用程序能够高效、灵活地管理和使用数据库连接。同时,这种解耦合的设计也有利于应用的扩展和维护。

    配置 JNDI 数据源

    在Spring框架与Tomcat服务器的集成中,配置JNDI数据源是将数据库连接管理交给服务器来处理,提高应用的可移植性和资源利用率。下面将详细解释配置JNDI数据源的相关知识点。 一、JNDI数据源的概念 JNDI数据源是一种...

    eclipse+mysql+tomcat配置JNDI

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

    Tomcat-5配置JNDI数据源

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

    Tomcat JNDI 数据源 自动生成程序 Servlet 版

    根据项目名自动生成 JNDI 配置文件,使程序员从手动配置JNDI数据源中解脱出来。 使用说明: 1、把“TomcatJNDI.war”文件放入 tomcat 的 webapps 文件夹下; 2、启动tomcat,在地址栏上输入:...

    Tomcat jndi 配置数据源过程

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

    tomcat中配置数据源

    本篇文章将深入探讨如何在Tomcat中配置数据源,以便于应用程序高效、稳定地访问数据库。 数据源(DataSource)是Java EE中用于管理数据库连接的接口,它提供了一种在多线程环境中安全、有效地管理和重用数据库连接...

    spring配置JNDI数据源

    总结来说,Spring配置JNDI数据源主要涉及两部分:一是应用服务器中JNDI资源的注册,二是Spring配置文件中通过JNDI查找并使用这些资源。这种方式的好处在于解耦,应用不再直接依赖具体的数据库连接配置,而是通过JNDI...

Global site tag (gtag.js) - Google Analytics