一、数据库连接池
1、什么是数据库连接池?
2、DataSource 接口 (数据源接口 数据源的具体实现,实现该接口)
3、什么是数据源?
3.1、DBCP 数据源
3.1.1通过BasicDataSource类直接创建数据源
3.1.2通过工厂类BasicDataSourceFactory 读取 配置文件 创建
3.2、c3p0 数据源
3.2.1通过ComboPooledDataSource()构造方法创建数据源
3.2.2通过ComboPooledDataSource(String configName) 读取 配置文件 创建
等
二、DBCP
/**
* @PackageName:cn.qccr.jdbc.pool DBCP是数据源区别C3PO 等其他数据源
* @ClassName:DBCPPoolExample01
* @Description: 第一种实现数据源方式 通过 阿帕奇开源组织 的 DBCP - BasicDataSource对象
* @Author:lyg
* @Date:2021/11/22 15:15
*/
public class BasicDataSourceExample01 {
public static DataSource ds = null;
static {
// 获取DBCP 数据源实现类对象
BasicDataSource bds = new BasicDataSource();
// 设置连接数据库需要的 配置信息
bds.setDriverClassName("com.mysql.jdbc.Driver");
bds.setUrl("jdbc:mysql://mysql001.daily.yunhumjk.com:3306/order");
bds.setUsername("admin");
bds.setPassword("Adminyunhu123+");
// 设置连接池参数
bds.setInitialSize(5);
bds.setMaxActive(5);
ds = bds;
}
public static void main(String[] args) throws SQLException {
// 获取数据库连接对象
Connection conn = ds.getConnection();
//获取数据库连接信息
final DatabaseMetaData metaData = conn.getMetaData();
//打印数据库连接信息
System.out.println(metaData.getURL() + "; username=" + metaData.getUserName() + "; " + metaData.getDriverName());
}
}
/**
* @PackageName:cn.qccr.jdbc.pool DBCP是数据源区别C3PO 等其他数据源
* @ClassName:DBCPPoolExample01
* @Description: 第一种实现数据源方式 通过 阿帕奇开源组织 的 DBCP -
* BasicDataSourceFactory对象 通过配置文件形式加载数据源配置信息
*
* @Author:lyg
* @Date:2021/11/22 15:15
*/
public class BasicDataSourceFactoryExample01 {
public static DataSource ds = null;
static {
// 创建一个配置文件对象
Properties prop = new Properties();
try {
InputStream io = new BasicDataSourceFactoryExample01()
.getClass()
.getClassLoader()
.getResourceAsStream("config/dbcpconfig.properties");
// 把文件已输入流的形式加载到配置对象中
prop.load(io);
// 创建数据流对象
ds = BasicDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException {
// 获取数据库连接对象
Connection conn = ds.getConnection();
//获取数据库连接信息
final DatabaseMetaData metaData = conn.getMetaData();
//打印数据库连接信息
System.out.println(metaData.getURL() + "; username=" + metaData.getUserName() + "; " + metaData.getDriverName());
}
}