以下头三步是配置的方式,最后一部分是说明在程序中如何使用配置好的数据源。
添加数据库驱动
把jdbc driver包放到{Tomcat home}/lib目录下 。
我用的是mysql,最新驱动是mysql-connector-java-5.1.6-bin.jar,我把它复制到了C:\apache-tomcat-6.0.16\lib
写context.xml配置文件
在项目的META-INF目录下建一名为context.xml的文档,我本机的文件(已经添加到本页附件)内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!--
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
logAbandoned 表示被丢弃的数据库连接是否做记录,以便跟踪
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址
-->
<Context>
<Resource
name="jdbc/cyMysql"
auth="Container"
type="javax.sql.DataSource"
maxActive="50"
maxIdle="30"
maxWait="10000"
logAbandoned="true"
username="dev001"
password="dev001"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/jspdev" />
</Context>
配置web.xml
在WEB-INF/web.xml中添加如下配置信息resource-ref作为web-app的根元素
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/cyMysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
调用数据源
配置完毕,程序中调用方式,如下:
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/cyMysql");
Connection conn = ds.getConnection();
参考
Tomcat 6数据源的配置(陈毓哲)
Apache Tomcat 6.0 JNDI Datasource HOW-TO