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

简介:  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;
目录
相关文章
|
Java Spring
Spring boot 运行服务jar外配置配置文件方式总结
Spring boot 运行服务jar外配置配置文件方式总结
1780 0
|
8月前
|
存储 Java Maven
Maven系统级别依赖:解决部署时Jar包缺失问题
以上就是关于Maven系统级别依赖解决部署时Jar包缺失问题的解答,希望对你有所帮助。在软件开发中,遇到问题并解决问题是常态,希望你能够善用这些工具,解决你遇到的问题。
541 28
|
Java 中间件 测试技术
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
java依赖冲突解决问题之jar包版本冲突无法通过升降级解决时如何解决
|
Java Linux Maven
java依赖冲突解决问题之容器加载依赖jar包如何解决
java依赖冲突解决问题之容器加载依赖jar包如何解决
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
数据库连接 数据库 数据安全/隐私保护
数据库连接池的配置文件
我们首先要确认连接池需要哪些配置信息,根据经验,一个数据库连接池至少要有一下几个必须的配置。首先是必须由用户指定的几项配置,也就是数据库驱动、数据库连接的url、用户名和密码。然后是可以由连接池自己默认指定的几项配置,这些配置一般有:连接池初始大小,连接池最大大小,健康检查开始时间,健康检查间隔时间,以及连接超时时间。这些配置信息我们可以将其写进一个properties文件里,这个文件我们命名为pool.properties,处于项目的resource目录下。在创建数据库连接池时我们需要将这些配置信息读进内存里。
|
API
表情包-搜狗版免费API接口教程
该接口用于通过指定关键词搜索搜狗表情包,支持POST或GET请求方式。需提供用户ID和KEY,可选参数包括关键词(长度不超过10个汉字)和页码,默认第1页。返回状态码、信息提示、当前页码及表情包图片地址集合。示例中ID与KEY为公共测试用,建议使用个人ID与KEY以提高调用频率。
467 4
|
API
表情包-百度版免费API接口教程
该接口用于通过指定关键词从百度渠道获取表情包,支持POST或GET请求。需提供用户ID和KEY,可选参数包括关键词、页码及结果数量。返回数据包含状态码、信息提示、结果集等。示例中ID与KEY为公共测试用,建议使用个人ID与KEY以享受更高调用频率。
1448 4
|
API
表情包-API盒子官方资源库版免费API接口教程
该API用于访问API盒子官方资源库中的数十万表情包,支持快速搜索。通过POST或GET请求,用户可按随机或关键词搜索表情包,返回表情包的图片地址等信息。请求需提供用户ID、KEY及搜索类型等参数。示例与详情参见官方文档。
818 3
|
Java
[JarEditor]可直接修改jar包的IDEA插件
### 修改JAR包变得更简单:JarEditor插件简介 **背景:** 开发中常需修改JAR包中的class文件,传统方法耗时费力。JarEditor插件让你一键编辑JAR包内文件,无需解压。 **插件使用:** 1. **安装:** 在IDEA插件市场搜索JarEditor并安装。 2. **修改class:** 打开JAR文件中的class,直接编辑,保存后一键构建更新JAR。 3. **文件管理:** 右键菜单支持在JAR内新增/删除/重命名文件等操作。 4. **搜索:** 使用内置搜索功能快速定位JAR包内的字符串。
1714 2
[JarEditor]可直接修改jar包的IDEA插件

热门文章

最新文章