java编程怎么使用连接池

时间:2025-01-24 16:31:53 游戏攻略

在Java中使用连接池可以显著提高数据库操作的性能,因为连接池可以重用已经建立的数据库连接,而不是为每次操作都创建新的连接。以下是使用C3P0和Druid两种流行连接池的示例。

使用C3P0连接池

添加C3P0依赖

通过Maven添加依赖:

```xml

com.mchange

c3p0

0.9.5.5

```

配置C3P0连接池

创建一个`c3p0-config.xml`文件,内容如下:

```xml

```

在Java代码中使用连接池

```java

import com.mchange.v2.c3p0.ComboPooledDataSource;

import java.sql.Connection;

import java.sql.SQLException;

public class DatabaseUtil {

private static ComboPooledDataSource dataSource;

static {

try {

dataSource = new ComboPooledDataSource();

dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");

dataSource.setUser("root");

dataSource.setPassword("password");

dataSource.setMaxPoolSize(50);

dataSource.setMinPoolSize(10);

} catch (SQLException e) {

e.printStackTrace();

}

}

public static Connection getConnection() throws SQLException {

return dataSource.getConnection();

}

}

```

使用Druid连接池

添加Druid依赖

通过Maven添加依赖:

```xml

com.alibaba

druid

1.2.18

```

配置Druid连接池

创建一个`druid.properties`文件,内容如下:

```properties

driverClassName=com.mysql.cj.jdbc.Driver

url=jdbc:mysql://localhost:3306/test_db

username=root

password=123456

initialSize=5

minIdle=5

maxActive=20

maxWait=60000

```

在Java代码中使用连接池

```java

import com.alibaba.druid.pool.DruidDataSource;

import java.sql.Connection;

import java.sql.SQLException;

public class DatabaseUtil {

private static DruidDataSource dataSource;

static {

try {

dataSource = new DruidDataSource();

dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");

dataSource.setUrl("jdbc:mysql://localhost:3306/test_db");

dataSource.setUsername("root");

dataSource.setPassword("123456");

dataSource.setInitialSize(5);

dataSource.setMinIdle(5);

dataSource.setMaxActive(20);

dataSource.setMaxWait(60000);

} catch (SQLException e) {

e.printStackTrace();

}

}

public static Connection getConnection() throws SQLException {

return dataSource.getConnection();

}

}

```

总结

C3P0:通过配置文件`c3p0-config.xml`创建数据源,并在代码中通过`ComboPooledDataSource`获取连接。

Druid:通过配置文件`druid.properties`创建数据源,并在代码中通过`DruidDataSource`获取连接