今天终于把Tomcat的数据库连接池问题搞定了。我这个美国的同类真是的,每次版本变化,配置文件都要变。网络上多是讲5.0的,5.5的有所更改,我参照网上一位朋友的说明,修改了一下,终于配置成功。唉,谁叫咱英文功底不足呢。
我用的数据库是MySQL5.0,所以首先要把MySQL的JDBC驱动程序拷贝到Tomcat安装目录的/common/lib下和你自己网站的/WEB-INF/lib下。
Server.xml的修改我推荐使用Tomcat的Admin组件完成,完全图形化配置,相当容易。或者按下面的写法在<GlobalNamingResources></GlobalNamingResources>之间写如下配置(仅供参考,各位用的时候,请改成自己数据库的配置):
< Resource
name ="jdbc/mysql"
type ="javax.sql.DataSource"
password ="******"
driverClassName ="org.gjt.mm.mysql.Driver"
maxIdle ="2"
maxWait ="5000"
username ="root"
url ="jdbc:mysql://127.0.0.1/test"
maxActive ="4" />
然后,在Tomcat安装目录下/conf/Catalina/localhost文件夹中建立一个和你网站文件夹名字一样的XML文件。例如:
TestSourse.xml。内容如下:
其实就是把Server.xml的内容再重复一遍。这一步非常重要,如果没有这步就会出错,会出现 org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'错误。<? xml version="1.0" encoding="UTF-8" ?>
< Context >
< Resource
name ="jdbc/mysql"
type ="javax.sql.DataSource"
password ="******"
driverClassName ="org.gjt.mm.mysql.Driver"
maxIdle ="2"
maxWait ="5000"
username ="root"
url ="jdbc:mysql://127.0.0.1/test"
maxActive ="4" />
</ Context >
最后,在你自己网站的/WEB-INF/web.xml文件中,添加一下代码(参考):
OK。配置全部完成。现在你可以写代码测试这个数据库连接池了。如:< resource-ref >
< description > DB Connection </ description >
< res-ref-name > jdbc/mysql </ res-ref-name >
< res-type > javax.sql.DataSource </ res-type >
< res-auth > Container </ res-auth >
</ resource-ref >
数据库连接对象得到了。DataSource ds = null ;
InitialContext ctx = new InitialContext();
ds = (DataSource)ctx.lookup( " java:comp/env/jdbc/mysql " );
Connection conn = ds.getConnection();