TOMCAT全局数据源DBCP配置详解:server.xml中的详细步骤

4星 · 超过85%的资源 需积分: 33 26 下载量 19 浏览量 更新于2024-12-23 收藏 32KB DOC 举报
本文主要介绍了如何在Apache Tomcat服务器中配置全局数据源DBCP,以提高数据库连接管理的效率。首先,确保将MySQL的JDBC驱动程序mysql-connector-java-3.1.10-bin.jar放置在Tomcat安装目录下的commons/lib文件夹,以便在启动时自动加载驱动。 配置步骤如下: 1. 在`server.xml`中的`<GlobalNamingResources>`部分,添加一个名为`jdbc/test`的`DataSource`定义,如下所示: ``` <GlobalNamingResources> ... <Resource name="jdbc/test" type="javax.sql.DataSource" username="root" password="tellme" driverClassName="com.mysql.jdbc.Driver" maxIdle="10" maxWait="50" url="jdbc:mysql://localhost:3306/video" maxActive="20"/> </GlobalNamingResources> ``` 这里定义了数据源的名字(jdbc/test)、用户名、密码、驱动类名(用于连接MySQL数据库)、最大空闲连接数(maxIdle)、等待连接的最大时间(maxWait)、连接URL以及最大活动连接数(maxActive)。 2. 在每个Web应用的`context.xml`文件中,需要通过`<ResourceLink>`元素与全局数据源进行关联,例如: ``` <Context> ... <ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/> </Context> ``` 这样,每个Web应用都能共享这个全局数据源。 3. 在Java代码中,创建一个名为DBCPConn的公共静态方法,使用`InitialContext`获取数据源并建立连接: ```java public class DBCPConn { public static Connection getConnection() throws Exception { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test"); return ds.getConnection(); } } ``` 这个方法通过`InitialContext`查找并获取数据源,然后返回连接对象。 4. 在JSP或Servlet中,可以调用`DBCPConn.getConnection()`来获取数据库连接,执行SQL查询后记得关闭连接,如示例所示: ```jsp <%! Connection conn = DBCPConn.getConnection(); try { Statement stmt = conn.prepareStatement("select * from emp"); ResultSet rs = stmt.executeQuery(); // 处理查询结果... } finally { conn.close(); } %> ``` 总结来说,通过这种方式,TOMCAT服务器可以更有效地管理和复用数据库连接,减少资源浪费,同时提高了Web应用的性能。对于需要在多个Web应用之间共享数据库连接的场景,全局数据源DBCP是一个理想的选择。