连接池

1、连接池概述

用池来管理Connection,这样可以重复使用Connection。有了池,就不需要自己创建连接,只需要通过池来获取Connection对象。当Connection使用完毕后,再讲Connection归还给池。池可以再次利用这个Connection对象。

Java为数据库连接池提供了公共的接口:javax.sql.DataSource。

常见连接池:DBCP、C3P0。

2、DBCP连接池

DBCP是一个开源的连接池,是Apache Common成员之一,是Tomcat内置的连接池。

DataSource:它是java中提供的连接池,作为DriverManager工具的替代项。在DBCP包中提供了DataSource接口的实现类,具体的连接池是BasicDataSource类。

工具类常见配置项

分类 属性 描述
必须项 driverClassName 数据库驱动名称
url 数据库地址
username 用户名
password 密码
可选项 maxActive 最大连接数量
minIdle 最小空闲数量
maxIdle 最大空闲数量
initialSize 初始化连接

 

 

 

 

 

 

 

 

 

 

 

 

 

工具类

 1 package datasource;
 2 
 3 import javax.sql.DataSource;
 4 
 5 import org.apache.commons.dbcp.BasicDataSource;
 6 
 7 /**
 8  * <p>Description:连接池工具类 </p>
 9  * @author Administrator
10  * @date 2018年11月6日下午2:05:42
11  */
12 public class JDBCUtils {
13     public static final String DRIVER = "com.mysql.jdbc.Driver";
14     public static final String URL = "jdbc:mysql://localhost:3306/jdbctest";
15     public static final String USERNAME = "root";
16     public static final String PASSWORD = "root";
17     /*
18      * 创建连接池对象
19      */
20     public static BasicDataSource dataSource = new BasicDataSource();
21     // 静态代码块
22     static {
23         // 对连接池进行基本配置
24         dataSource.setDriverClassName(DRIVER);
25         dataSource.setUrl(URL);
26         dataSource.setUsername(USERNAME);
27         dataSource.setPassword(PASSWORD);
28         // 可选配置
29         dataSource.setInitialSize(10);    // 初始化的连接数
30         dataSource.setMaxActive(8);        // 最大连接数量
31         dataSource.setMaxIdle(5);        // 最大空闲数
32         dataSource.setMinIdle(1);        // 最小空闲
33     }
34     /*
35      * 返回连接池对象
36      */
37     public static DataSource getDataSource() {
38         return dataSource;
39     }
40 }

工具类使用演示

 1 package datasource;
 2 
 3 import java.sql.SQLException;
 4 
 5 import org.apache.commons.dbutils.QueryRunner;
 6 
 7 /**
 8  * <p>Description:使用DBCP获得连接的工具类测试 </p>
 9  * @author Administrator
10  * @date 2018年11月6日下午2:13:43
11  */
12 public class DBCPDemo {
13 
14     public static void main(String[] args) throws SQLException {
15         // 创建sql执行对象
16         QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
17         // sql语句
18         String sql = "update sort set sprice=? where sname=?";
19         // 设置实际参数
20         Object[] params = {80,"算法"};
21         // 执行sql语句
22         int row = qr.update(sql, params);
23         System.out.println(row);
24     }
25 
26 }

 

posted @ 2018-11-06 14:39  AlphaJunS  阅读(158)  评论(0编辑  收藏  举报