编写标准的数据源(规范)

Java为数据库连接池提供了公共的接口:javax.sql.DataSource,各个厂商需要让自己的连接池实现这个接口。这样应用程序可以方便的切换不同厂商的连接池!

常见的第三方连接池如下:

C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0是异步操作的,所以一些操作时间过长的JDBC通过其它的辅助线程完成。目前使用它的开源项目有Hibernate,Spring等。C3P0有自动回收空闲连接功能

阿里巴巴-德鲁伊druid连接池:Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池、插件框架和SQL解析器组成。该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求。

DBCP(DataBase Connection Pool)数据库连接池,是Apache上的一个Java连接池项目,也是Tomcat使用的连接池组件。dbcp没有自动回收空闲连接的功能。

C3P0连接池

使用步骤

导入c3p0-0.9.1.2.jar

拷贝配置文件到src目录

创建连接池(配置文件自动读取的)

编写配置文件 c3p0-config.xml

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/day19

root

root

5

c3p0连接池常用的配置参数:

参数说明initialPoolSize初始连接数

maxPoolSize最大连接数

checkoutTimeout最大等待时间

maxIdleTime最大空闲回收时间

初始连接数:刚创建好连接池的时候准备的连接数量

最大连接数:连接池中最多可以放多少个连接

最大等待时间:连接池中没有连接时最长等待时间

最大空闲回收时间:连接池中的空闲连接多久没有使用就会回收

编写Java代码

/**

* C3P0连接池的工具类

*

*/

public class C3P0Utils {

//1. 创建一个C3P0的连接池对象(会自动读取src目录下的c3p0-config.xml,所以不需要我们解析配置文件)

public static DataSource ds = new ComboPooledDataSource();

//2. 提供 从连接池中 获取连接对象的方法

public static Connection getConnection() throws SQLException {

Connection conn = ds.getConnection();

return conn;

}

//3. 提供 获得数据源(连接池对象)的方法

public static DataSource getDataSource(){

return ds;

}

}

Druid 连接池

Druid是阿里巴巴开发的号称为监控而生的数据库连接池,Druid是国内目前最好的数据库连接池。在功能、性能、扩展性方面,都超过其他数据库连接池。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。如:一年一度的双十一活动,每年春运的抢火车票。

DRUID连接池使用的jar包:druid-1.1.16.jar

Druid连接池工具类编写

步骤:

导入DRUID jar 包

拷贝配置文件到src目录

根据配置文件 创建连接池对象

从连接池对象获得连接

实现:

创建druid.properties, 放在src目录下

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/day19

username=root

password=root

编写Java代码

/**

* 阿里巴巴的连接池 Druid 工具类

*/

public class DruidUtils {

/*

1. 加载 druid.properties 配置文件

2. 创建 Druid 连接池对象

3. 提供 获得 连接池对象的方法

4. 提供 从连接池中 获取连接对象Connection的 方法

*/

public static DataSource ds = null;

static {

try {

//1. 加载 druid.properties 配置文件

InputStream is = DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties");

Properties prop = new Properties();

prop.load(is);

//2. 创建 Druid 连接池对象

ds = DruidDataSourceFactory.createDataSource(prop);

} catch (Exception e) {

e.printStackTrace();

}

}

/*

3. 提供 获得 连接池对象的方法

*/

public static DataSource getDataSource(){

return ds;

}

/*

4. 提供 从连接池中 获取连接对象Connection的 方法

*/

public static Connection getConnetion() throws SQLException {

Connection conn = ds.getConnection();

return conn;

}

}

标签:java,配置文件,数据库,Druid,ds,static,public,连接池

来源: https://blog.csdn.net/qq754772661/article/details/111384030

java中常用的连接池_java数据库连接池相关推荐

  1. java中常用的加密方法_java中常用的数据加密算法

    [项目中第一次深入地了解到加密算法的使用,现第一阶段结束,将使用到的加密算法和大家分享一下:首先还是先给大家普及一下常用加密算法的基础知识基本的单向加密算法BASE6 以下为加密的工具类: impor ...

  2. 连接池,数据库连接池

    连接池 连接池是什么? 连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用. 连接池的优点 减少连接创建时间 简化的编程模式 受控的资源使用 注:连接池能够使性能最大化, ...

  3. Java中使用Jedis连接Redis对Hash进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  4. Java中使用Jedis连接Redis对Set进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  5. Java中使用Jedis连接Redis对List进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  6. Java中使用Jedis连接Redis对String进行操作的常用命令

    场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...

  7. Java中使用Jedis连接Redis对Key进行操作的常用命令

    场景 Java中使用Jedis连接池连接Redis数据库流程: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/104914320 ...

  8. JAVA中常用的逻辑运算符_Java中常用的运算符

    运算符是一种"功能"符号,用以通知 Java 进行相关的运算,Java 语言中常用的运算符可分为如下几种: 算数运算符.赋值运算符.比较运算符.逻辑运算符.条件运算符. 一.算数运 ...

  9. java 中常用英语_java中常用英语

    英语|JAVA笔试题常见英语_电子/电路_工程科技_专业资料.Java 笔试题常见英语 What will be the output when you compile and execute the ...

最新文章

  1. 连续2年入不敷出,青云流血冲刺科创板:拟募资11.88亿,最近三年净亏4.37亿
  2. AIX系统文件安全性方面的几点考虑
  3. android Java BASE64编码和解码二:图片的编码和解码
  4. 图像特征提取与描述_角点特征01:Harris算法+Shi-Tomas算法
  5. android 进度条 代码,Android 进度条使用详解及示例代码
  6. Python3 装饰器解析
  7. CIF、QCIF、HD1、D1格式介绍
  8. android adb端口被占用问题
  9. 分治法求最大和最小值
  10. 爆红Github!再来一个小白练手项目,20个项目随你造!
  11. js 使用image.height和image.width获取图片宽高值为0,获取失败
  12. 开源 java CMS - FreeCMS2.7 单位管理
  13. WebRTC 之 RTX
  14. 一张图概括淘宝直播背后的前端技术
  15. 学硕与专硕 计算机,2019计算机考研选学硕还是专硕?
  16. 手机安全卫士------查询号码归属地
  17. Win10商店打开无法加载页面,代码0x80131500,解决办法
  18. 数据中心机房监控大厅效果图
  19. SpringBoot中出现 No qualifying bean of type ‘com.tanhua.server.mapper.UserInfoMapper‘ available: expect
  20. php酷狗音乐API接口,酷狗音乐抓取api

热门文章

  1. 遥感图像处理的一般流程
  2. 那些牛逼的外贸人是如何在领英上“抢走你的客户”?
  3. 陨石猎人的光荣与梦想
  4. java 如何调用 wsdl_java 调用wsdl的方式
  5. SSM车位管理系统 毕业设计-附源码65739
  6. css hover同级,CSS hover改变子标签/同级标签样式
  7. 在myeclipse中如何进行调试
  8. sql start with用法
  9. 用VB写歌词搜索程序
  10. html页面引入vue