博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JDBC数据库连接池实现
阅读量:5885 次
发布时间:2019-06-19

本文共 2574 字,大约阅读时间需要 8 分钟。

数据库连接池,用池来管理Connection,这可以重复使用Connection。有了池,所以我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。这个池要等到Web服务器停止,或应用程序彻底结束时,才会直正销毁。池销毁之前,池会让池中每个Connection对象调用close()方法来关闭自己。

编写标准的数据源

自定义数据库连接池要实现javax.sql.DataSource接口,一般都叫数据源。

市场上流行的JDBC数据库连接池实现:

1.DBCP(早期)
2.C3P0(今)

DBCP

DBCP:Apache推出的Database Connection Pool

使用步骤:
1、添加jar包 commons-dbcp-1.4.jar commons-pool-1.5.6.jar commons-collections.jar mysql-connector-java-5.1.7-bin.jar
2、添加属性资源文件
3、编写数据源工具类

/** * DBCP数据库连接池的使用 */public class Demo01 {    private static BasicDataSource basicDataSource = new BasicDataSource();    static{        //设置数据库连接池基本属性        basicDataSource.setDriverClassName("com.mysql.jdbc.Driver");        basicDataSource.setUrl("jdbc:mysql://127.0.0.1:3306/jdbc");        basicDataSource.setUsername("root");        basicDataSource.setPassword("123");        //设置数据库连接池扩展属性        basicDataSource.setInitialSize(10);        basicDataSource.setMaxActive(10);        basicDataSource.setMaxIdle(5);    }    /**     * 获取数据库连接     */    public Connection getConnection() throws SQLException{        try {            return basicDataSource.getConnection();        } catch (SQLException e) {            e.printStackTrace();            throw e;        }    }}复制代码

DBCP的配置:

//基本配置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbc
username=root
password=root

//初始化池大小,即一开始池中就会有10个连接对象,默认值为0

initialSize=0

//最大连接数

maxActive=8

//最大空闲连接

maxIdle=8

//最小空闲连接,默认值为0

minIdle=0

//最大等待时间,默认值为-1,表示无限期等待,不会抛出异常。

maxWait=-1

//连接的默认提交方式,默认值为true

defaultAutoCommit=true

//连接是否为只读连接,如果没有指定这个属性值,那么是否为只读连接,这就由驱动自己来决定了。即Connection的实现类自己来决定!

defaultReadOnly=true

//指定事务的事务隔离级别

可选值:NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE
如果没有指定,那么由驱动中的Connection实现类自己来决定
defaultTransactionIsolation=REPEATABLE_READ

C3P0

C3P0也是开源免费的连接池!实现类:ComboPooledDataSource

使用步骤:
1、添加jar包,导入 c3p0-0.9.1.2.jar
mysql-connector-java-5.1.7-bin.jar
2、编写配置文件c3p0-config.xml,c3p0的配置文件名必须为c3p0-config.xml,并且必须放在src路径下。
3、编写工具类

/** * C3P0数据库连接池的使用方式 */public class Demo{    /**     * 自动加载/src/c3p0-config.xml文件     */    private static ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource("oracle-config");    /**     * 获取数据库连接     */    public Connection getConnection() throws SQLException{        try {            return comboPooledDataSource.getConnection();        } catch (SQLException e) {            e.printStackTrace();            throw e;        }    }}复制代码

欢迎阅读上海尚学堂《》,获得更多有关JDBC数据库连接池相关知识信息。

转载地址:http://hmlix.baihongyu.com/

你可能感兴趣的文章
ASP.NET MVC 防止CSRF攻击
查看>>
EF:无法检查模型兼容性,因为数据库不包含模型元数据。
查看>>
0和5
查看>>
C# WinFrom一些技术小结
查看>>
hdu5001 Walk 概率DP
查看>>
模拟select控件&&显示单击的坐标&&用户按下键盘,显示keyCode
查看>>
Mac-OSX下Ruby更新
查看>>
jsp九个内置对象
查看>>
[Python笔记][第一章Python基础]
查看>>
Bloomberg SEP 12.x 迁移小记
查看>>
生日小助手V1.1发布了——拥有更整齐的信息列表
查看>>
代理模式
查看>>
Qt 学习(1)
查看>>
MFC CEdit改变字体大小的方法
查看>>
java 中文数字排序方法
查看>>
centos 关于防火墙的命令
查看>>
openstack 源码分析
查看>>
idea 使用maven plugin tomcat 运行正常,无法进入debug模式
查看>>
Classification Truth Table
查看>>
JVM学习:对象的创建和内存分配
查看>>