posts - 58,  comments - 45,  trackbacks - 0
转载自http://www.kaifz.com/Tomcat5-5-JNDI-JDBC-t39764.htm

Tomcat5.5下配置JNDI JDBC数据源
w.kejia@gmail.com
1. 安装JDBC驱动
通常,将JDBC驱动安装到$CATALINA_HOME/common/lib下。
2. 声明你的资源引用
这里我们为JDBC数据源建立的JNDI资源名为“jdbc/dataSource2005”,需要在web应用部署描述文件web.xml中添加资源声明:
<resource-ref>
<description>
Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.
</description>
<res-ref-name>
jdbc/dataSource2005
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>
以下是一份简单、完整的web.xml文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app id="StrutsWuApplication">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<resource-ref id="datasource">
<description>Database connection</description>
<res-ref-name>jdbc/dataSource2005</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
3. 配置Tomcat资源工厂
接下来修改应用的$CATALINA_HOME/conf/server.xml或web应用的/META-INF/context.xml文件,在相应的context节添加:
<Context ...>
...
<Resource name="jdbc/dataSource2005" auth="Container" type="javax.sql.DataSource" username="sa" password="sa" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://localhost:1433;databasename=northwind" maxActive="8" maxIdle="4"/>
...
</Context>
Tomcat标准数据源资源工厂配置项如下:
* driverClassName - 所使用的JDBC驱动类全称。
* maxActive - 同一时刻可以自数据库连接池中被分配的最大活动实例数。
* maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。
* maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。
* password - 传给JDBC驱动的数据库密码。
* url - 传给JDBC驱动的连接URL。
* user - 传给JDBC驱动的数据库用户名。
* validationQuery - 一个SQL查询语句,用于在连接被返回给应用前的连接池验证。如果指定了该属性,则必为至少返回一行记录的SQL SELECT语句。
4. 使用
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource)envCtx.lookup("jdbc/dataSource2005");
Connection conn = ds.getConnection();
... use this connection to access the database ...
conn.close();
注意:Tomcat5.5不支持ConnectionPoolDataSource接口。
5. 参考
* http://tomcat.apache.org/tomcat-5.5-doc/jndi-resources-howto.html
posted on 2006-05-05 21:54 gosyl 阅读(527) 评论(0)  编辑  收藏 所属分类: j2se

只有注册用户登录后才能发表评论。


网站导航: