dbcp 连接都会被断开_连接池

e2e89e5afd62a0712f64ab4d4e4f8579.png

在Java中,连接池使用javax.sql.DataSource接口来表示连接池。

DataSource仅仅只是一个接口,由各大服务器厂商来实现

常用的DataSource的实现:

DBCP:Spring推荐的

C3P0:Hibernate推荐的

Druid:(德鲁伊)阿里巴巴开源的,性能最好,速度最快

DataSource(数据源)和连接池(Connection Pool)是同一个。

使用连接池和不使用连接池的区别

从代码上:

不使用连接池:Connection对象由DriverManager获取。

Connection conn = DriverManager.getConnection(url,username,password);

使用连接池:创建DataSource对象,在DataSource中设置url,账号,密码

DruidDataSource ds = new DruidDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
  ds.setUrl("jdbc:mysql://localhost:3306/jdbcdemo");
  ds.setUsername("root");
  ds.setPassword("root");
Connection conn = ds.getConnection();
		System.out.println(conn);

释放资源:Connection 对象.close():是把Connection放回给连接池,而不是和数据库断开。

这里我们使用德鲁伊连接池。

准备druid连接池jar包到项目

f210e853ad0fee2518c41986ac413012.png

使用工厂对象创建连接池,不需要直接设置账号密码等,只需要将连接数据库账号密码等等以指定的key的名字配置到xxx.properties文件中,工厂对象底层自动读取。

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream inputStream = classLoader.getResourceAsStream("db.properties");
//创建properties对象,读取配置文件相应的输入流
Properties p = new Properties();
p.load(inputStream);
DataSource ds = DruidDataSourceFactory.createDataSource(p);
//获取连接对象
Connection conn = ds.getConnection();
System.out.println(conn);

37319b4ecb462caa131dbfb2aff7c0d2.png

bfbd0e426400fb5b15bc86e85869308b.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值