Tomcat 5.5.20配置JNDI数据源

此方法为配置全局数据源,配置局部数据源对象见《李刚》
一、在tomcat的conf/server.xml中的<GlobalNamingResources>元素中添加如下内容:

<GlobalNamingResources>
<Resource
    name="jdbc/sqlservertest"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="45"
    username="sa"
    maxWait="180"
    driverClassName="net.sourceforge.jtds.jdbc.Driver"
    password="123456"
    url="jdbc:jtds:sqlserver://localhost:1433/test"
    removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
    testOnReturn="true" testWhileIdle="true"/>
<Resource
    name="jdbc/mysqltest"
    auth="Container"
    type="javax.sql.DataSource"
    maxActive="100"
    maxIdle="45"
    username="root"
    maxWait="180"
    driverClassName="com.mysql.jdbc.Driver"
    password="123456"
    url="jdbc:mysql://localhost:3306/test"
    removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
    testOnReturn="true" testWhileIdle="true"/>
</GlobalNamingResources>


2、 对于全局数据源的引用,在TOMCAT_HOME/conf/context.xml中添加如下内容:

<ResourceLink name="jdbc/mysqltest" global="jdbc/mysqltest" type="javax.sql.DataSource"/>



以上配置了两个全局数据源,一个叫jdbc/sqlservertest,是SQLServer2000的,一个叫:jdbc/mysqltest,是mysql的

二、然后在web程序中写一个jsp:内容如下

<%@ page language="java" pageEncoding="utf-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>

<%!final String JNDINAME = "java:comp/env/jdbc/mysqltest";%>
<%
Connection conn = null;
try {
// 初始化查找命名空间
Context ctx = new InitialContext();
// 找到DataSource
DataSource ds = (DataSource) ctx.lookup(JNDINAME);
conn = ds.getConnection();
PreparedStatement ps = conn
.prepareStatement("select * from users");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
out.println(rs.getString(2) + "<br>");
}
rs.close();
} catch (Exception e) {
System.out.println(e);
}

// 将连接重新放回到池中
conn.close();
%>

****做到这里已可以*****

三、然后将做个web工程发布到tomcat下。

我用了两种方式发布:一种是war包的方式,一种是在server.xml中添加一个Context;

下面分别说说两种发布方式的区别:

1、war包方式:

如果要用war包方式发布web应用程序,又要使用JNDI数据源的话,要在你的web工程的META-INF文件夹下设置web项目的Context内容:

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

<Context path="/test">

    <ResourceLink global="jdbc/mysqltest" name="jdbc/mysqltest2" type="javax.sql.DataSource"/>

</Context>

global:就是tomcat的server.xml中配置的全局数据源名称。

name:就是你的web项目中要用的那个那个数据源的名称:也就是jsp中写的那个mysqltest2名称;

将上面代码保存为context.xml放到META-INF目录下或拷贝上面代码中的

<ResourceLink global="jdbc/mysqltest" name="jdbc/mysqltest2" type="javax.sql.DataSource"/>

到conf/context.xml中。

2、在server.xml中添加context的方式:

直接在server.xml中的<host></host>中添加如下内容:

<Context path="/test" docBase="c:/test" debug="0" reloadable="true">

        <ResourceLink global="jdbc/mysqltest" name="jdbc/huodong2" type="javax.sql.DataSource"/>

</Context>

附:配置access数据库的jndi,数据库放在tomcat根目录下或dbq设置为绝对路径。

<Resource
      name="jdbc/access"
      type="javax.sql.DataSource"
      driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
      password=""
      maxIdle="2"
      maxWait="5000"
      username=""
      url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=test.mdb"
      maxActive="4"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值