数据库连接池概念
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个数据库连接,而不是重新建立一个,这项技术能明显提高对数据库操作的性能。
开源数据库连接池
C3P0连接池的使用步骤
1.导包
c3p0-0.9.5.2.jar
mchange-commons-java-0.2.12.jar
2.导入配置文件到src目录下
<c3p0-config>
<!-- 使用默认的配置读取连接池对象 -->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://192.168.93.128:3306/db14</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">10</property>
<property name="checkoutTimeout">3000</property>
</default-config>
<named-config name="otherc3p0">
<!-- 连接参数 -->
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db15</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">1000</property>
</named-config>
</c3p0-config>
3.创建C3P0连接池对象
//创建C3P0数据库连接对象
ComboPooledDataSource dataSource = new ComboPooledDataSource();
4.通过连接池对象获取数据库连接
Connection con = dataSource.getConnection();
5.执行测试操作
String sql="SELECT * FROM student";
PreparedStatement pst = con.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while (rs.next()){
System.out.println(rs.getInt("sid")+"\t"+rs.getString("name")+"\t"+rs.getInt("age")+"\t"+rs.getDate("birthday"));
}
DataSourceUtils.close(con,pst,rs);
Druid数据库连接池的使用步骤
1.导入jar包
druid包 + MySQL驱动
2.编写配置文件,放在src目录下
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.93.128:3306/db14
username=root
password=root
# 初始化连接数量
initialSize=5
# 最大连接数量
maxActive=10
# 超时时间
maxWait=3000
3.通过properties集合加载配置文件
//创建utils类,定义静态代码块加载配置文件
static {
try {
InputStream is = DruidTest1.class.getClassLoader().getResourceAsStream("druid.properties");
//1.通过Properties集合,加载配置文件
Properties prop=new Properties();
prop.load(is);
4.通过Druid连接池工厂类获取数据库连接池对象
//2.通过Druid连接工厂类获取数据库连接池对象
dataSource = DruidDataSourceFactory.createDataSource(prop);
}catch (Exception e){
e.printStackTrace();
}
}
5.获取数据库连接使用
public static Connection getConnection(){
Connection con=null;
//3.通过连接池对象获取数据库连接进行使用
try {
con = dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return con;
}