03_dbcp数据源依赖jar包,DBCP中API介绍,不同过dbcp方式使用dbcp数据库连接池,通过配置文件使用dbcp数据库连接池

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介:  DBCP数据源 使用DBCP数据源,需要导入两个jar包 Commons-dbcp.jar:连接池的实现 Common-pool.jar:连接池实现的依赖库。   导入mysql的jar包。   DBCP核心API BasciDataSource   它可以通过实例化对象的方式获得一个对象。 它里面有如下方法: se


DBCP数据源

使用DBCP数据源,需要导入两个jar

Commons-dbcp.jar:连接池的实现

Common-pool.jar:连接池实现的依赖库。

 

导入mysqljar包。

 

DBCP核心API

BasciDataSource   它可以通过实例化对象的方式获得一个对象。

它里面有如下方法:

setDriverClassName(String driverClassName) 设置驱动类的名称。

setInitialSize(int initialSize) 设置初始化时的链接数目。

setMaxActive(int maxIdle) 设置最大的并发访问数量。

setMaxIdle(int maxIdle): 设置最大的闲置数目。

setPassword:用于设置密码。

setUrl:设置url

setUsername:设置用户名。

 

 

数据源实现BasicDataSourceFactory   用于创建数据源的工厂类,

 

不设配置文件时使用BasicDataSource的程序的写法:

package cn.toto.utils;

 

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

 

import javax.sql.DataSource;

 

import org.apache.commons.dbcp.BasicDataSource;

 

public class JdbcUtils {

    private JdbcUtils(){}

    //定义BasicDataSource的父类接口的形式,获得ds的参数。

    private static DataSource ds;

   

    static {

           //要想使用写好的数据源的功能,得先初始化一个dbcp连接池

           BasicDataSource bds = new BasicDataSource();

          

           //设置一系列参数

           bds.setDriverClassName("com.mysql.jdbc.Driver");

           bds.setUrl("jdbc:mysql://localhost:3306/day14");

           bds.setUsername("root");

           bds.setPassword("123456");

          

           //设置初始化大小

           bds.setInitialSize(5); //初始时设置5个连接数

           bds.setMaxActive(20);//设置并发访问数目。

           //bds.setMaxWait(0);//设置最大等待时间。不等待。

          

           ds = bds;  //获得数据是通过父接口的DataSource接口。

    }

    //获得连接池

    public static DataSource getDataSource(){

       return ds;

    }

 

   

    //获得与指定数据库的连接

    public static Connection getConnection() throws SQLException{

       //从连接池返回一个连接  

       return ds.getConnection();

    }

   

    public static void release(ResultSet rs,Statement stmt,Connection conn){

       if(rs!=null) {

           try{

              rs.close();

           }catch(SQLException e){

              e.printStackTrace();

           }

           rs = null;

       }

       if(stmt!=null){

           try{

              stmt.close();

           }catch(SQLException e){

              e.printStackTrace();

           }

           stmt = null;

       }

       if(conn!= null) {

           try{

              conn.close();

           }catch(SQLException e){

              e.printStackTrace();

           }

           conn = null;

       }

    }

}

 

用于验证的主函数的写法:

package cn.toto.demo;

 

import java.sql.Connection;

import java.sql.SQLException;

 

import cn.toto.utils.JdbcUtils;

 

public class Demo {

 

    public static void main(String[] args) throws SQLException {

      

       for(int i=0;i<30;i++){

           Connection conn = JdbcUtils.getConnection();//如果只写这句,程序将一直等待执行。

           System.out.println(conn);//不写下面一句时,打印输出,验证是否有20条,结果是20

          

           conn.close();//用一个放回一个,加上这一句之后将出现30条数据。

       }

    }

 

}

 

在文档中还有一个方法:

org.apache.commons.dbcp
Class BasicDataSourceFactory
它里面有一个这样的方法:

createDataSource(Properties properties)
          Creates andconfigures a
BasicDataSourceinstance based on the given properties.

它是根据Properties,根据properties中的信息获得信息。

配置dbcp的配置文件的方法是:找到文档中的Configuration,里面有多个属性。

src下面编写一个一个配置文件config.properties

driverClassName=com.mysql.jdbc.Driver

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

username=root

password=123456

initialSize=5

maxiActive=20

 

通过配置文件的方式获得的数据源的源码是:

package cn.toto.utils;

 

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Properties;

 

import javax.sql.DataSource;

 

import org.apache.commons.dbcp.BasicDataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

 

public class JdbcUtils {

    private JdbcUtils() {

    }

 

    // 定义BasicDataSource的父类接口的形式,获得ds的参数。

    private static DataSource ds;

 

    static {

       try {

           InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream(

                  "config.properties");//通过类加载的方式获得获得配置文件的流

           Properties prop = new Properties();

           prop.load(in);//通过流将配置项加载进来。

           //通过工厂类读取

           ds = BasicDataSourceFactory.createDataSource(prop);

       } catch (Exception e) {

           throw new ExceptionInInitializerError();

       }

    }

 

    // 获得连接池

    public static DataSource getDataSource() {

       return ds;

    }

 

    // 获得与指定数据库的连接

    public static Connection getConnection() throws SQLException {

       // 从连接池返回一个连接

       return ds.getConnection();

    }

 

    public static void release(ResultSet rs, Statement stmt, Connection conn) {

       if (rs != null) {

           try {

              rs.close();

           } catch (SQLException e) {

              e.printStackTrace();

           }

           rs = null;

       }

       if (stmt != null) {

           try {

              stmt.close();

           } catch (SQLException e) {

              e.printStackTrace();

           }

           stmt = null;

       }

       if (conn != null) {

           try {

              conn.close();

           } catch (SQLException e) {

              e.printStackTrace();

           }

           conn = null;

       }

    }

}

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
11月前
|
API
Dataphin功能Tips系列(58)- 支持OAuth2.0认证方式的API数据源
在数据集成过程中,Dataphin需通过API从外部系统获取数据,而这些系统常采用动态令牌鉴权机制。本文介绍如何在Dataphin中配置支持OAuth 2.0认证的API数据源,实现自动获取和刷新访问令牌,确保安全高效地进行数据请求与集成。
258 8
|
数据采集 安全 大数据
Dataphin 5.1:API数据源及管道组件升级,适配多样化认证的API
为提升API数据交互安全性,Dataphin 5.1推出两种新认证方式:基于OAuth 2.0的动态授权与请求签名认证。前者通过短期Access Token确保安全,后者对关键参数加密签名保障数据完整性。功能支持API数据源OAuth 2.0认证和自定义签名配置,未来还将拓展更灵活的认证方式以满足多样化需求。
342 14
|
存储 数据挖掘 BI
API数据源:轻松接入各类业务系统数据
在数字化转型中,企业面临多样化的数据需求。Quick BI推出API数据源功能,支持广泛的数据接入,包括实时天气、电商交易及内部业务数据,极大丰富了可分析数据范围。该功能提供灵活的连接方式(抽取和直连模式)、多元授权机制(基础认证、前置请求)和自动化数据解析,降低了操作门槛,提升了配置效率。通过动态Token获取等最佳实践,确保数据安全与实时性,满足企业具体业务需求。了解更多,请访问Quick BI官方文档或瓴羊官网。
826 77
|
缓存 JSON JavaScript
体育应用怎么通过API接口接入数据源与直播源
本文介绍了体育类应用接入数据源与直播源的API接口方案。主要包括:1) 数据源API接入,涉及选择提供商、接入流程及常见数据类型;2) 直播源接入,涵盖直播源类型、提供商和技术方案;3) 技术实现要点,如数据缓存、实时更新机制和安全性考虑;4) 成本优化建议。附有HLS播放示例及Node.js完整集成代码,帮助开发者高效实现体育应用功能。
1276 21
|
JSON 数据管理 关系型数据库
【Dataphin V3.9】颠覆你的数据管理体验!API数据源接入与集成优化,如何让企业轻松驾驭海量异构数据,实现数据价值最大化?全面解析、实战案例、专业指导,带你解锁数据整合新技能!
【8月更文挑战第15天】随着大数据技术的发展,企业对数据处理的需求不断增长。Dataphin V3.9 版本提供更灵活的数据源接入和高效 API 集成能力,支持 MySQL、Oracle、Hive 等多种数据源,增强 RESTful 和 SOAP API 支持,简化外部数据服务集成。例如,可轻松从 RESTful API 获取销售数据并存储分析。此外,Dataphin V3.9 还提供数据同步工具和丰富的数据治理功能,确保数据质量和一致性,助力企业最大化数据价值。
690 1
|
分布式计算 DataWorks 大数据
MaxCompute产品使用合集之DataWorks中如何根据MC数据源做成api
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
178 0
|
Oracle 关系型数据库 Java
实时计算 Flink版产品使用问题之如何启动多个jar包来监听同一个数据库的binlog,并针对不同的业务进行处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
关系型数据库 MySQL 数据库连接
解决在eclipse2021中,用mysql-connector-java-8.0.18.jar不兼容,导致无法访问数据库问题
解决在eclipse2021中,用mysql-connector-java-8.0.18.jar不兼容,导致无法访问数据库问题
654 0
|
Oracle Java 关系型数据库
各种数据库对应的jar包、驱动类名和URL格式
各种数据库对应的jar包、驱动类名和URL格式
491 0
|
分布式计算 DataWorks 关系型数据库
DataWorks操作报错合集之在DataWorks同步数据时,遇到乱码问题,该怎么解决(rest api数据源)
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
301 0