Directorio de artículos
1. Método de configuración
Hay tres formas de configurar c3p0, a saber
1. Proporcione un archivo c3p0-config.xml en la ruta de clase
2. Proporcione un archivo c3p0.properties bajo classpath
3.Los ajustadores establecen cada elemento de configuración uno por uno
datasource = new ComboPooledDataSource();
//连接配置
datasource.setJdbcUrl("jdbc:mysql://localhost:3306/test?serverTimezone=UTC");
datasource.setDriverClass("com.mysql.cj.jdbc.Driver");
datasource.setPassword("123");
datasource.setUser("root");
//连接池配置
datasource.setAcquireIncrement(5);//每创建的数量间隔
datasource.setInitialPoolSize(5);//初始化池的大小
datasource.setMaxPoolSize(20);//最大大小
datasource.setMinPoolSize(5);//最小大小
2. La ubicación del archivo de configuración
Principalmente debemos prestar atención a la ubicación del archivo de configuración
2.1, configuración c3p0 del proyecto Maven
1. Primero importe las dependencias c3p0
Agregue el archivo pom.xml
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
2. Agregue la información del archivo de configuración en la carpeta de recursos,
no lo agregue en el archivo src, sino en la carpeta de recursos. ! !
<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
<!-- 默认配置 创建连接池对象时,默认是加载该配置信息-->
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test?serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
<property name="minPoolSize">5</property>
<property name="checkoutTimeout">3000</property>
</default-config>
<!--为oracle提供的配置 创建连接池对象时,可以指定命名加载配置信息-->
<named-config name="oracle-config">
<property name="jdbcUrl">jdbc:oracle:thin:@地址:端口:ORCL</property>
<property name="driverClass">oracle.jdbc.driver.OracleDriver</property>
<property name="user">root</property>
<property name="password">12345</property>
<!-- 池参数 -->
<property name="acquireIncrement">3</property>
<property name="initialPoolSize">30</property>
<property name="minPoolSize">2</property>
<property name="maxPoolSize">50</property>
</named-config>
<named-config name="otherc3p0">
</named-config>
</c3p0-config>
3. Prueba:
datasource = new ComboPooledDataSource();//文件位置对的话,自动加载
public static void main(String[]args) {
Connection connection= null;
Statement statement = null;
ResultSet res = null;
try{
System.out.println("connect to database....");
connection = JDBCUtils_C3P0.getConnect();
System.out.println("create statement...");
statement = connection.createStatement();
//3、选择sql命令操作数据库中的数据
String sql;
sql="select * from bank";
//4、执行sql语句,获取结果集
res = statement.executeQuery(sql);//获取结果集
//5、从结果集里面获取数据
while(res.next()){
int id = res.getInt("id");
String name = res.getString("name");
System.out.println(id+":"+name);
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils_C3P0.free(connection,statement,res);
}
}
2.2, configuración del proyecto java ordinario
Importe paquetes dependientes y agregue archivos de configuración en la carpeta src. (No probado)
Descarga del paquete:
enlace: https://pan.baidu.com/s/1rAEXqMYvLv7bU4B-oE7o5w
Código de extracción: udyg
copie este contenido y abra la aplicación móvil Baidu Netdisk , la operación es más conveniente
3. La diferencia entre c3p0 y DBCP
- dbcp no recupera automáticamente las conexiones inactivas, pero c3p0 sí.
- Los marcos como Hibernate recomiendan usar c3p0 como grupo de conexiones de forma predeterminada, y DBCP no es compatible en el futuro