博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jdbc中的数据库连接池
阅读量:3964 次
发布时间:2019-05-24

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

1.传统连接的问题:

在这里插入图片描述

如何解决传统开发中的数据库连接问题:使用数据库连接池

2.使用数据库连接池的好处

  • 资源重用
    由于数据库连接得以重用,避免了频繁创建,释放连接引起的大量性能开销。在减少系统消耗 的基础上,另一方面也增加了系统运行环境的平稳性。
  • 更快的系统反应速度
    数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用。此时连接 的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接 初始化和释放过程的时间开销,从而减少了系统的响应时间
  • 新的资源分配手段
    对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接池的配置,实现某一应用 最大可用数据库连接数的限制,避免某一应用独占所有的数据库资源
  • 统一的连接管理,避免数据库连接泄露
    在较为完善的数据库连接池实现中,可根据预先的占用超时设定,强制回收被占用连接,从而 避免了常规数据库连接操作中可能出现的资源泄露

或自己组织语言:

1.提高程序的响应速度(减少了创建连接相应的时间)
2.降低资源的消耗(可以重复使用已经提供好的连接)
3.便于连接的管理

3.数据库连接池的工作原理

在这里插入图片描述

4.实现的方式:

在这里插入图片描述

C3P0

导入jar包:

在这里插入图片描述
测试连接的代码:

/**     * 使用C3P0的数据库连接池技术     *     * @return     */    //数据库连接池只需提供一个即可。    private static ComboPooledDataSource cpds = new ComboPooledDataSource("hellc3p0");    public static Connection getConnection1() throws SQLException {
return cpds.getConnection(); }

其中,配置文件定义在src下。名为:c3p0-config.xml

com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/test
root
abc123
5
10
10
100
50
2

DBCP

导入jar包:

在这里插入图片描述
测试连接的代码:

/**	 * 	 * @Description 使用DBCP数据库连接池技术获取数据库连接	 */	//创建一个DBCP数据库连接池	private static DataSource source;	static{
try {
Properties pros = new Properties(); FileInputStream is = new FileInputStream(new File("src/dbcp.properties")); pros.load(is); source = BasicDataSourceFactory.createDataSource(pros); } catch (Exception e) {
e.printStackTrace(); } } public static Connection getConnection2() throws Exception{
Connection conn = source.getConnection(); return conn; }

其中,配置文件定义在src下:dbcp.properties

driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/testusername=rootpassword=abc123initialSize=10

druid

导入jar包:

在这里插入图片描述

测试连接的代码:

/**	 * 使用Druid数据库连接池技术	 */	private static DataSource source1;	static{
try {
Properties pros = new Properties(); InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("druid.properties"); pros.load(is); source1 = DruidDataSourceFactory.createDataSource(pros); } catch (Exception e) {
e.printStackTrace(); } } public static Connection getConnection3() throws SQLException{
Connection conn = source1.getConnection(); return conn; }

其中,配置文件定义在src下:druid.properties

url=jdbc:mysql://localhost:3306/testusername=rootpassword=abc123driverClassName=com.mysql.jdbc.DriverinitialSize=10maxActive=10

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

你可能感兴趣的文章
括号及后向引用
查看>>
Spring Batch 核心概念
查看>>
Spring Batch 例子: 导入定长文件到数据库
查看>>
正则表达式
查看>>
Java I/O
查看>>
序列化
查看>>
Perl 精萃
查看>>
Perl 简介
查看>>
Perl 注释
查看>>
数据类型之标量
查看>>
调试 Perl 脚本
查看>>
增强的for循环语句
查看>>
方法的可变参数
查看>>
静态导入
查看>>
java 泛型
查看>>
控制结构
查看>>
标准输入输出
查看>>
运算符
查看>>
数据类型之列表与数组
查看>>
比较字符串
查看>>