DataSource 和 DruidDataSource

2024-04-17 19:44

本文主要是介绍DataSource 和 DruidDataSource,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

DataSource

DataSource 是 Java 数据库连接(JDBC)API 中的一个接口,

它提供了一个标准的方式来访问数据库连接池。

通过 DataSource,你可以从连接池中获取数据库连接,而无需编写大量的连接代码,这使得数据库连接的创建、管理和释放更加简单和高效。

DataSource 本身只是一个接口,

所以,你不能直接实例化它,

相反,你需要使用特定的数据库连接池实现来创建 DataSource 的实例,这些实现可能具有不同的配置选项和性能特性。


DruidDataSource

DruidDataSource 是 Alibaba Druid 数据库连接池的一个实现,

它实现了 javax.sql.DataSource 接口,

Druid 是一个高性能、功能强大的数据库连接池,提供了很多高级特性和配置选项,

例如:SQL 监控、慢查询日志、连接泄露检测等。

使用 DruidDataSource,你可以轻松地配置和管理数据库连接池,同时利用 Druid 提供的丰富功能和性能优化,

你可以通过代码或配置文件来设置连接池的各种参数,如初始连接数、最大连接数、连接超时时间等。


区别与联系

  1. 接口与实现DataSource 是一个接口,而 DruidDataSource 是该接口的一个具体实现。

  2. 功能与特性DataSource 提供了基本的数据库连接功能;而 DruidDataSource 除了提供这些基本功能外,还增加了很多高级特性和性能优化。

  3. 配置与灵活性:使用 DataSource,你可能需要手动编写代码来管理数据库连接。而 DruidDataSource 提供了丰富的配置选项和工具,使得连接池的管理和监控更加简单和灵活。

  4. 性能与监控:Druid 作为一个高性能的连接池,通常比简单的 DataSource 实现具有更好的性能。此外,Druid 还提供了强大的监控和诊断功能,帮助你更好地了解和管理数据库连接。


总的来说

选择 DataSource 还是 DruidDataSource

如果,你没有特定的需求去利用 DruidDataSource 的高级特性,并且希望代码更加灵活和易于维护,

那么,选择 DataSource 接口类型合适,

如果,你需要利用 DruidDataSource 的特定功能,那么选择 DruidDataSource 类型可能更合适。

这篇关于DataSource 和 DruidDataSource的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/912678

相关文章

Spring源码学习--Spring Boot配置多个DataSource

文章来源: https://www.liaoxuefeng.com/article/001484212576147b1f07dc0ab9147a1a97662a0bd270c20000 源码地址: https://github.com/michaelliao/springcloud/tree/master/data-multidatasource

spring boot使用DataSource初始化sql脚本

spring boot使用DataSource初始化sql脚本 DataSource自动配置类 DataSourceAutoConfiguration 使用DataSourceInitializer初始化sql脚本的案例,使用DatabasePopulatorUtils工具类来执行脚本 /** Copyright 2012-2017 the original author or author

【Grafana】通过api请求Grafana Datasource获取数据

可以通过api请求Grafana Datasource获取数据,以此解决一部分想从Grafana获取数据的需求(有毒的需求),按道理说应该通过脚本或程序直接从数据源中获取。 实现方式     Grafana开启了匿名访问后,F12刷新页面,查看面板的实际访问路径、请求头部和请求参数。     使用python请求,就可以返回Grafana面板看到的值。 Mysql数据源 p

Spring获得DataSource

一、从JNDI获得DataSource 1.1、Spring JNDI数据源配置信息 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiName"><value>java:comp/env/jcptDataSourceJNDI</value></pro

动态代理在JDBC的DataSource中的应用

目的:为数据连接池中的每一个Connection创建一个代理,当需要使用Connection对象操作数据库时,先判断是否超过连接池的最大连接数,如果没有超过,取得连接,否则不进行连接。 1、抽象对象角色 JDBC提供了Connection接口 2、定义我们自己的数据连接池,实现DataSource接口 public class MyDataSource implements DataSou

多数据源启动异常:No qualifying bean of type ‘javax.sql.DataSource‘ available: more than one ‘primary‘ bean f

多数据源报错:No qualifying bean of type 'javax.sql.DataSource' available: more than one 'primary' bean found among 初始化方法中 会获取数据源 ,当你有两个数据源的时候,程序不知道取哪一个 ,所以报错,需要设置'primary' 解决办法: 定义数据源的地方 加个primary="true"

Android DataSource 层实现

前言 在 Android 日益成熟和完善的阶段,我们的项目也日益的开始注重性能和可维护性.今天要和大家聊一聊Android 项目里面的 DataSource 首先我们可以理解 DataSource 是一个单独的 Module,可以对外提供很多的数据操作 - 网络请求 - 本地的一些数据的持久化 - 一些第三方的数据封装 - 项目中一些Runtime的数据(比如用户信息,是否登录了

阅读源码解析dynamic-datasource-spring-boot-starter中是如何动态切换数据源的

dynamic-datasource-spring-boot-starter是苞米豆提供的一个动态切换数据源的工具,可以帮助企业或者个人实现多数据源的切换,这里通过阅读源码的方式解析是如何动态的切换数据源的,采用的版本是3.5.1 源码解析 通过官方文档可以看到,如果想要动态的切换数据源,就需要在类或者方法上加上@DS注解 加上这个注解以后通过aop就可以拦截且识别到dsName究竟是什

带你学习Mybatis之DataSource数据源

DataSource数据源 所有的数据源组件都实现了javax.sql.DataSource接口,Mybatis实现了两个接口实现,分别为PooledDataSource和UnpooledDataSource,使用不同的DataSourceFactory接口实现创建不同类型的DataSource UnpooledDataSource 每次通过UnpooledDataSource.getConne

SpringJDBC中DataSource的实现

maven依赖: <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>4.3.5.RELEASE</version></dependency> 类图(部分) 1. AbstractDataSource抽象类 实现了DataSource一些无关紧要的