以下是使用c3p0连接池的Java代码示例:

  1. 引入c3p0依赖
<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>c3p0</artifactId>
    <version>0.9.5.5</version>
</dependency>
  1. 配置c3p0连接池
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;

public class DataSource {
    private static ComboPooledDataSource cpds = null;

    static {
        try {
            cpds = new ComboPooledDataSource();
            cpds.setDriverClass("com.mysql.cj.jdbc.Driver");
            cpds.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC");
            cpds.setUser("username");
            cpds.setPassword("password");

            cpds.setInitialPoolSize(5);
            cpds.setMinPoolSize(1);
            cpds.setMaxPoolSize(10);

            cpds.setAcquireIncrement(5);
            cpds.setMaxIdleTime(60);
            cpds.setMaxStatements(100);
        } catch (PropertyVetoException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws SQLException {
        return cpds.getConnection();
    }
}
  1. 使用连接池获取数据库连接
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Test {
    public static void main(String[] args) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;

        try {
            conn = DataSource.getConnection();
            pstmt = conn.prepareStatement("SELECT * FROM users");
            rs = pstmt.executeQuery();

            while (rs.next()) {
                System.out.println(rs.getInt("id") + " " + rs.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
                if (pstmt != null) {
                    pstmt.close();
                }
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
``
c3p0连接池代码

原文地址: https://www.cveoy.top/t/topic/cyKw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录