1不使用配置方式
首先导入依赖:
我的mysql版本是8.0的:
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.13</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
之前看了一个帖子老版本的mysql用这个C3P0的依赖就可以了
<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
创建步骤
1.创建ComboPooledDataSource对象
ComboPooledDataSource dataSource = new ComboPooledDataSource();
2.设置数据库数据
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/work?" +
"useSSL=false&serverTimezone=UTC"); dataSource.setUser("root");
dataSource.setPassword("123456");
3.建立Connection
Connection conn = nuil;
conn = dataSource.getConnection();
4.创建 PreparedStatement对象执行sql语句
PreparedStatement ps = null;
5.
代码:
package SpringWork.Pool;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class C3p0 {
@Test
public void c3p0Test() throws PropertyVetoException, SQLException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/work?" +
"useSSL=false&serverTimezone=UTC");
dataSource.setUser("root");
dataSource.setPassword("123456");
Connection conn=null;
PreparedStatement ps = null;
try{
conn = dataSource.getConnection();
String sql = "insert into c3p0Table(name) values(?)";
ps = conn.prepareStatement(sql);
ps.setString(1,"helloc3p0");
ps.executeUpdate();
}catch (Exception e){
e.printStackTrace();
}finally {
ps.close();
conn.close();
// JDBCUtil.release(conn,ps);
}
}
}
2使用配置的方式
1.Test
package SpringWork.Pool;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class C3p0Demo2 {
@Test
public void c3p0Test2() throws SQLException {
Connection conn=null;
PreparedStatement ps = null;
try{
ComboPooledDataSource dataSource = new ComboPooledDataSource();
conn = dataSource.getConnection();
String sql = "delete from c3p0Table where name =?";
ps = conn.prepareStatement(sql);
ps.setString(1,"helloc3p0");
if (ps.executeUpdate()!=0){
System.out.println("数据处理成功!");
}
}catch (Exception e){
e.printStackTrace();
}finally {
ps.close();
conn.close();
// JDBCUtil.release(conn,ps);
}
}
}
2.c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!--配置连接池mysql-->
<!--<named-config name="mysql"> </named-config>-->
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/work?useSSL=false&serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
<property name="maxStatements">200</property>
</default-config>
<!--配置连接池2-->
<!--配置连接池3-->
<!--配置连接池4-->
</c3p0-config>