JDBC数据源连接池(3)---Tomcat集成DBCP

2022-10-15,,,,

此文续《JDBC数据源连接池(2)---C3P0》。

Apache Tomcat作为一款JavaWeb服务器,内置了DBCP数据源连接池。在使用中,只要进行相应配置即可。

首先,确保Web项目的WebContent--->WEB-INF--->lib文件夹中有mysql数据库驱动jar包。

其次,配置数据源的xml文件。如果配置信息写在tomcat--->con--->context.xml中,那么所有应用都能使用此数据源;如果是在当前应用的WebContent--->META-INF中创建context.xml,并编写数据源,那么只有当前应用可以使用。本文选择了后一种方式,context.xml配置信息如下:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/mydsp" auth="Container" type="javax.sql.DataSource"
maxActive="10" maxIdle="10" maxWait="10000"
username="root" password="2017" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/itszt2"  />
</Context>

再次,编写Util_4_JDBC_DBCP_TOMCAT数据源连接池工具类,代码内容如下:

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
 * Tomcat内置的DBCP数据源连接池
 */
public abstract class Util_4_JDBC_DBCP_TOMCAT {
    private static DataSource dataSource=null;
    static {
        try {
            Context context=new InitialContext();
            dataSource= (DataSource) context.lookup("java:comp/env/jdbc/mydsp");
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
    /**
     * 打开与数据库的连接
     * @return 一个连接对象
     */
    public static Connection openConnection(){
        try {
            return dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }
    //释放资源
    public static void release(Connection connection, Statement statement, ResultSet resultSet){
        if(connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (statement != null) {
            try {
                statement.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (resultSet != null) {
            try {
                resultSet.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }    
}

最后,在com.itszt.demo文件夹中的LoginServlet.java的Servlet文件中,将产生Connection对象的方式修改为Tomcat内置DBCP连接池方式即可。

JDBC数据源连接池(3)---Tomcat集成DBCP的相关教程结束。

《JDBC数据源连接池(3)---Tomcat集成DBCP.doc》

下载本文的Word格式文档,以方便收藏与打印。