Tomcat 6.0 设置 JNDI 数据源

可以在context.xml中添加:
< Context path ="/connjndi" docBase ="D:\workspace\TestJndi\WebRoot" reloadable ="true" >

< Resource name ="jdbc/SampleData" auth ="Container" type ="javax.sql.DataSource"
maxActive
="100" maxIdle ="30" maxWait ="10000"
username
="sampledata" password ="password" driverClassName ="oracle.jdbc.OracleDriver"
url
="jdbc:oracle:thin:@//localhost:1521/mondrian" />
</ Context >

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

在web.xml中添加:
< description > Oracle Test App </ description >
< resource-ref >
< description > DB Connection </ description >
< res-ref-name > jdbc/SampleData </ res-ref-name >
< res-type > javax.sql.DataSource </ res-type >
< res-auth > Container </ res-auth >
</ resource-ref >
写一个jsp文件进行测试
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*" %>

<%
Connection conn = null;
try
{
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/SampleData");
conn = ds.getConnection();
out.println("connection pool connected !!");
} catch (NamingException e) {
System.out.println(e.getMessage());
} catch (SQLException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}finally
{
conn.close();
}
%>
若报异常可能原因是:1、jdbc驱动未放入lib下。2、配置数据源时放入context.xml中,3、数据源的名称不一致

你可能感兴趣的:(tomcat)