日期:2014-05-18  浏览次数:20677 次

如何用TOMCAT 的数据库连接池
如何用TOMCAT   的数据库连接池

------解决方案--------------------
今天终于把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。内容如下:
<?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>
  其实就是把Server.xml的内容再重复一遍。这一步非常重要,如果没有这步就会出错,会出现org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class ' '
for connect URL 'null '错误。
最后,在你自己网站的/WEB-INF/web.xml文件中,添加一下代码(参考):
<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>
  OK。配置全部完成。现在你可以写代码测试这个数据库连接池了。如:
DataSource ds = null;
InitialContext ctx=new InitialContext();
ds=(DataSource)ctx.lookup( "java:comp/env/jdbc/mysql ");
Connection conn = ds.getConnection();
  数据库连接对象得到了。
------解决方案--------------------
首先修改tomcat的安装目录conf\server.xml:
<Host ...>
<Context ...>
<Resource name= "jdbc/pm2006 " auth= "Container " type= "javax.sql.DataSource "/>
<ResourceParams name= "jdbc/pm2006 ">
<parameter>
<name> factory </name>
<value> org.apache.commons.dbcp.BasicDataSourceFactory </value>
</parameter>
<parameter>
<name> driverClassName </name>
<value> oracle.jdbc.driver.OracleDriver </value>
</parameter>
<parameter>
<name> url </name>
<value> jdbc:oracle:thin:@10.3.0.1:1521:orcl </value>
</parameter>
<parameter>
<name> username </name>
<value> ... </value>
</parameter>
<parameter>
<name> password </name>
<value> ... </value>
</parameter>