获得数据库连接池中数据连接资源的两种方式-阿里云开发者社区

开发者社区> 郭璞> 正文

获得数据库连接池中数据连接资源的两种方式

简介: 相比于从数据库中直接获取数据库连接,使用数据库连接池的方式可以很大程度的提高数据库连接的效率。因此我们在实际开发中通常会采用数据库连接池的方式获取数据库的连接,在使用完成后这些资源再返还给数据库连接池。
+关注继续查看

相比于从数据库中直接获取数据库连接,使用数据库连接池的方式可以很大程度的提高数据库连接的效率。因此我们在实际开发中通常会采用数据库连接池的方式获取数据库的连接,在使用完成后这些资源再返还给数据库连接池。下面我们就来看一看常用的数据库连接池的简单的方法。


使用DBCP方式


话不多说,直接上代码。这里仅仅是一个简单的效果呈现,所以只需要打印出一句话即可。

package jdbcpool;

import java.sql.Connection;

import org.apache.commons.dbcp.BasicDataSource;
/**
 * 采用dbcp方式获得数据库连接池中的数据连接
 * @author Summer
 *
 */
public class Demo1 {

    @org.junit.Test
    public void Test() throws Exception {
        BasicDataSource bds = new BasicDataSource();
        bds.setDriverClassName("com.mysql.jdbc.Driver");
        bds.setUrl("jdbc:mysql://localhost:3306/test");
        bds.setUsername("root");
        bds.setPassword("mysql");
        try{
            Connection conn = bds.getConnection();
            System.out.println(conn);
        }catch(Exception e){
            throw new RuntimeException(e);
        }
    }

}

采用c3p0方式


package jdbcpool;

import java.sql.Connection;

import org.junit.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**
 * 采用c3p0方式获得数据库连接池中的数据连接
 * @author Summer
 *
 */
public class Demo2 {
    @Test
    public void test() throws Exception {
        ComboPooledDataSource cpds = new ComboPooledDataSource();
        cpds.setDriverClass("com.mysql.jdbc.Driver");
        cpds.setJdbcUrl("jdbc:mysql://localhost:3306/test");
        cpds.setUser("root");
        cpds.setPassword("mysql");


        Connection conn = cpds.getConnection();
        System.out.println(conn);

    }


}

两种方式的小总结


这两种方式都是实际开发中使用的数据库连接池开源技术。但是这两者有各自的优点及用途。一般来说在使用Hibernate框架的时候会采用c3p0方式。而使用Spring框架的时候通常会采用dbcp的方式。不能说二者孰优孰劣,我们要在实际的开发中选择合适的即可。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
NodeJS 后端开发 07 MySQL数据库连接池开发生产应用
前篇 【NodeJS 后端开发 06 连接MySQL 】简单尝试了mysql js库来连接数据库。
11 0
数据库连接字符串
SQLServer 连接字符串 MySql 连接字符串 Data Source=127.0.0.1;Database=DBName;User Id=root;Password=root;
989 0
直播系统定制,判断数据连接是否可用
直播系统定制,判断数据连接是否可用
72 0
C++ 连接数据库的入口和获取列数、数据
这里不具体放出完整的程序,分享两个核心函数:   由于这里用到的函数是编译器自己的库所没有的,需要自己下载mysql.h库或者本地有数据库,可以去bin找到,放进去。        前提,我自己的测试数据库是WampServe自带的mysql,曾经试过连接新浪云的,发现很坑,它里面的要放代码进去它空间才能连,不能在本机连,连接的输入形参全是它规定的常量! 第一个是连接数据库的:       行内带有详细注释,皆本人的见解,有理解错的,求帮指出。
830 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
12060 0
基于DBUtils实现数据库连接池
红酥手,黄縢酒,满城春色宫墙柳。东风恶,欢情薄。一怀愁绪,几年离索。错、错、错。春如旧,人空瘦,泪痕红浥鲛绡透。桃花落,闲池阁。山盟虽在,锦书难托。莫、莫、莫! 前言:Flask是一个轻量级的基于python的Web框架,本身是没有ORM的操作的,如果在Flask中连接数据库有两种方式,即:pymysql和SQLAlchemy。
2151 0
数据挖掘数据集下载资源
在网上看到很好的资源收集,分享给大家: 1、气候监测数据集 http://cdiac.ornl.gov/ftp/ndp026b 2、几个实用的测试数据集下载的网站 http://www.
1273 0
获得数据库连接池中数据连接资源的两种方式
相比于从数据库中直接获取数据库连接,使用数据库连接池的方式可以很大程度的提高数据库连接的效率。因此我们在实际开发中通常会采用数据库连接池的方式获取数据库的连接,在使用完成后这些资源再返还给数据库连接池。
858 0
+关注
郭璞
一切就交给时间,它会给我答案。
369
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载