package C3P0ConnectionPool;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.junit.Test;
import java.beans.PropertyVetoException;
import java.sql.Connection;
import java.sql.SQLException;
public class C3P0Test {
//方式一:纯Java代码
@Test
public void TestGetConnection1() throws PropertyVetoException, SQLException {
//获取C3P0数据库连接池
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass( "com.mysql.jdbc.Driver" ); //loads the jdbc driver
cpds.setJdbcUrl( "jdbc:mysql://localhost:3306/cc" );
cpds.setUser("root");
cpds.setPassword("root");
//可以设置相关参数,对连接池进行管理
//如设置初始连接池的连接数
cpds.setInitialPoolSize(10);
//获取连接
Connection connection = cpds.getConnection();
System.out.println(connection);
// 销毁连接池,一般不会这么干
// DataSources.destroy(cpds);
}
//方式二:使用配置文件
@Test
public void TestGetConnection2() throws SQLException {
ComboPooledDataSource cpds = new ComboPooledDataSource("helloc3p0");
Connection connection = cpds.getConnection();
System.out.println(connection);
}
}
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/cc
root
root
5
10
10
100
50
2
package DBCPConnectionPool;
import org.apache.commons.dbcp2.BasicDataSource;
import org.apache.commons.dbcp2.BasicDataSourceFactory;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
public class DBCPTest {
//方式一:
@Test
public void TestGetConnection() throws SQLException {
//创建了DBCP数据库连接池
BasicDataSource source =new BasicDataSource();
//设置基本信息
source.setDriverClassName("com.mysql.jdbc.Driver");
source.setUrl("jdbc:mysql://localhost:3306/cc");
source.setUsername("root");
source.setPassword("root");
//还可以设置其他涉及数据库连接池管理的相关属性
source.setInitialSize(10);
Connection connection = source.getConnection();
System.out.println(connection);
}
//方式二:使用配置文件(推荐)
@Test
public void TestGetConnection1() throws Exception {
Properties properties = new Properties();
// //方式一:
// InputStream resourceAsStream = ClassLoader.getSystemClassLoader().getResourceAsStream("DBCP.peoperties");
// properties.load(resourceAsStream);
//方式二:
FileInputStream fileInputStream = new FileInputStream(new File("src/DBCP.properties"));
properties.load(fileInputStream);
BasicDataSource dataSource = BasicDataSourceFactory.createDataSource(properties);
Connection connection = dataSource.getConnection();
System.out.println(connection);
}
}
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/cc
username=root
password=root
initialSize=10
package DruidConnectionPool;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.junit.Test;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.util.Properties;
public class DruidTest {
@Test
public void GetConnection() throws Exception {
Properties properties = new Properties();
InputStream resourceAsStream = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties");
properties.load(resourceAsStream);
DataSource source = DruidDataSourceFactory.createDataSource(properties);
Connection connection = source.getConnection();
System.out.println(connection);
}
}
url=jdbc:mysql:///cc
username=root
password=root
driverClass=com.mysql.jdbc.Driver
initialSize=10
maxActive=10