在Java Web应用中,数据库连接池是至关重要的组成部分,它能有效地管理数据库连接,提高应用程序的性能和资源利用率。本文将详细介绍如何在Tomcat 5.5中配置MySQL 5.5的数据库连接池。
为了使Tomcat能够与MySQL进行通信,我们需要将MySQL的JDBC驱动程序(通常是`mysql-connector-java.jar`)添加到两个位置:Tomcat安装目录下的`/common/lib`以及你的Web应用的`/WEB-INF/lib`目录。这是为了确保Tomcat服务器和你的Web应用都能访问到必要的驱动。
接下来,我们需要配置Tomcat的服务器XML文件,即`server.xml`。推荐使用Tomcat的Admin组件进行图形化配置,但也可以手动编辑。在`<GlobalNamingResources>`标签之间,添加以下配置段,其中的参数应替换为你的实际数据库配置:
```xml
<Resource name="jdbc/mysql" type="javax.sql.DataSource"
password="your_password"
driverClassName="org.gjt.mm.mysql.Driver"
maxIdle="2"
maxWait="5000"
username="your_username"
url="jdbc:mysql://127.0.0.1/your_database"
maxActive="4" />
```
这段配置定义了一个名为`jdbc/mysql`的数据源,类型为`javax.sql.DataSource`,并设置了连接池的属性,如最大活动连接数(`maxActive`)、最大空闲连接数(`maxIdle`)和最大等待时间(`maxWait`),以及数据库的URL、用户名和密码。
然后,你需要在Tomcat的`conf/Catalina/localhost`目录下创建一个与你的Web应用文件夹同名的XML文件,例如`TestSource.xml`。这个文件的内容与`server.xml`中的数据源配置相同,这是因为Tomcat需要在每个Web应用上下文中都声明这个数据源。例如:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/mysql"
type="javax.sql.DataSource"
password="your_password"
driverClassName="org.gjt.mm.mysql.Driver"
maxIdle="2"
maxWait="5000"
username="your_username"
url="jdbc:mysql://127.0.0.1/your_database"
maxActive="4" />
</Context>
```
这个步骤至关重要,如果缺少这一步,可能会导致运行时错误,例如`org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'`。
在你的Web应用的`WEB-INF/web.xml`文件中,添加一个`<resource-ref>`标签来声明对数据源的引用:
```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>
```
这样,你的Web应用就能通过JNDI查找找到数据源,从而获取数据库连接。在代码中,你可以使用以下方式来获取连接:
```java
DataSource ds = null;
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mysql");
Connection conn = ds.getConnection();
```
至此,Tomcat 5.5与MySQL 5.5的数据库连接池配置已完成。通过这种方式,你的应用程序就能高效地管理和使用数据库连接,避免了频繁创建和关闭连接带来的开销,提升了系统性能。