数据库连接池

数据库连接池

1.什么是数据库连接池?
DBCP(DataBase Connection Pool)
数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放
2.数据库连接池的作用
1.资源复用,避免了重复创建,释放连接的大量资源消耗
2.更快的响应,数据库连接池初始化的时候往往已经创建了若干数据库连接置于池中,当进行业务请求时,避免了重新创建数据库连接和释放的时间
3.统一的数据库连接管理,避免资源泄露
3.常用的数据库连接池
1、C3P0:是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate 一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象。
2.DBCP(DataBase Connection Pool)数据库连接池,
 是Java数据库连接池的一种,由Apache开发,通过数据库连接池,
    可以让程序自动管理数据库连接的释放和断开
3. DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池。
4.Druid
1.首先引入jar包
2.引入配置文件
import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Properties;

public class Demo5 {
    public static void main(String[] args) throws Exception {
        Properties properties=new Properties();
        properties.load(new FileReader("src\\druid.properties"));
        DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
        Connection connection = dataSource.getConnection();
        String sql="select * from user";
        PreparedStatement preparedStatement = connection.prepareStatement(sql);
        ResultSet resultSet = preparedStatement.executeQuery();
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String username = resultSet.getString("username");
            String password1 = resultSet.getString("password");
            System.out.println(id+"\t"+username+"\t"+password1);
        }
        resultSet.close();
        preparedStatement.close();
        connection.close();

      /*  十月 15, 2020 3:01:17 下午 com.alibaba.druid.pool.DruidDataSource info
        信息: {dataSource-1} inited
        1	aaa	111
        2	bbb	222
        3	ccc	ddd*/
    }
}
//文件名druid.properties

#\u57FA\u672C\u914D\u7F6E
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql:///best
username=root
password=123
#\u9ED8\u8BA4\u914D\u7F6E
filters=stat
initialSize=2
maxActive=300
maxWait=60000
timeBetweenEvictionRunsMillis=60000
minEvictableIdleTimeMillis=300000
validationQuery=SELECT 1
testWhileIdle=true
testOnBorrow=false
testOnReturn=false
poolPreparedStatements=false
maxPoolPreparedStatementPerConnectionSize=200
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值