Maven项目 cityFileFK03数据库连接池连接(DBCP)

Maven+数据库连接池 数据库连接池 阅读详情
数据库连接池

1. 数据库连接池与JDBC对比

连接池是数据库的技术
JDBC每个用户请求都要创建新的连接对象,使用完要销户,多用户同时访问时会频繁创建和销毁连接对象,内存销毁大;
而连接池初始化时初始化一批数据库连接对象,用完归还到连接池,实现连接对象的复用,不够创建新的一批连接对象,达到最大连接数时,等待请求释放归还到连接池中

2. 数据库连接池的使用

2.1 导包

去maven网站搜索所需的连接池,复制代码,去项目的pom.xml文件导入依赖即可

在这里插入图片描述

2.2 使用

2.2.1 配置db.properties

db.properties 下增加初始容量和最大容量

initSize = p.getProperty("db.initSize");
maxSize = p.getProperty("db.maxSize");

resources目录下db.properties

db.username=root
db.password=123456
db.url=jdbc:mysql://localhost:3306/citylifefk?characterEncoding=utf8&serverTimezone=UTC
db.driver=com.mysql.jdbc.Driver
db.initSize = 25
db.maxSize = 50

2.2.2 util目录下的DBUtil类

定义6个静态变量,加载一次即可实现共享数据

    private static  String username;
    private static  String password;
    private static  String url;
    private static  String driver;
    private static String initSize;
    private static String maxSize

创建连接池对象

private static BasicDataSource basicDataSource;

静态块内容:

			static {

        try {
            InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");

            //  FileInputStream in=new FileInputStream("db.properties");
            System.out.println("in:" + in);

            //Properties 将properties属性文件数据以k-v的形式加载到内存中
            Properties p = new Properties();
            //p.load(in)将int类型加载
            p.load(in);

            //properties里保存到变量中
            username = p.getProperty("db.username");
            password = p.getProperty("db.password");
            url = p.getProperty("db.url");
            driver = p.getProperty("db.driver");
            initSize = p.getProperty("db.initSize");
            maxSize = p.getProperty("db.maxSize");

            System.out.println(username);
            System.out.println(password);
            System.out.println(url);
            System.out.println(driver);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }


使用 BasicDataSource 方法封装一个获取连接池方法

basicDataSource = new BasicDataSource();

将数据库的参数设置到连接池对象中并返回 basicDataSource

    basicDataSource.setDriverClassName(driver);
    basicDataSource.setUsername(username);
    basicDataSource.setPassword(password);
    basicDataSource.setUrl(url);
    basicDataSource.setInitialSize(Integer.parseInt(initSize));
    basicDataSource.setMaxActive(Integer.parseInt(maxSize));
    return  basicDataSource;

通过连接池获取连接对象

	//通过连接池获取连接对象
    public static Connection getConn(){
        Connection connection = null;
        try {
            connection = DBUtil.getBData().getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return  connection;
    }

util目录下是DBUtil完整代码:

package util;

/*

连接数据的类

 */


import org.apache.commons.dbcp.BasicDataSource;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class DBUtil {
    private static String username;
    private static String password;
    private static String url;
    private static String driver;
    private static String initSize;
    private static String maxSize;
    private static BasicDataSource basicDataSource;


    static {

        try {
            InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");

            //  FileInputStream in=new FileInputStream("db.properties");
            System.out.println("in:" + in);
            Properties p = new Properties();
            p.load(in);

            username = p.getProperty("db.username");
            password = p.getProperty("db.password");
            url = p.getProperty("db.url");
            driver = p.getProperty("db.driver");
            initSize = p.getProperty("db.initSize");
            maxSize = p.getProperty("db.maxSize");

            System.out.println(username);
            System.out.println(password);
            System.out.println(url);
            System.out.println(driver);

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    //封装一个获取连接池的连接方法
    public static BasicDataSource getBData() {
    basicDataSource = new BasicDataSource();
    //将数据库的参数设置到连接池对象中
    basicDataSource.setDriverClassName(driver);
    basicDataSource.setUsername(username);
    basicDataSource.setPassword(password);
    basicDataSource.setUrl(url);
    //将字符串转为Integeter类型
    basicDataSource.setInitialSize(Integer.parseInt(initSize));
    basicDataSource.setMaxActive(Integer.parseInt(maxSize));

    return basicDataSource;

    }

    //通过连接池获取连接对象
    public static Connection getConn(){
        Connection connection = null;
        try {
            connection = DBUtil.getBData().getConnection();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return connection;
    }
}

2.2.3 测试

Test包内的Java包下新建测试类:DBTest

import org.junit.Test;
import util.DBUtil;

import java.sql.Connection;

public class DBTest {

    //单元测试 junit 单元测试包
    /*单元测试方法
    注意:1 方法返回值只能写void
    2 方法不能传参数
    3 方法上面使用@Test注解*/
    @Test
    public void test1(){

        Connection conn = DBUtil.getConn();
        System.out.println("conn:"+conn);
    }
}

测试结果:
在这里插入图片描述

打印了 conn 数据库连接池连接成功

DBCP依赖Jar包 DBCP的依赖Jar包,完整的,亲测能用,欢迎下载!DBCP的依赖Jar包,完整的,亲测能用,欢迎下载! 立即下载

相关推荐

org.apache.commons.dbcp.BasicDataSource的解决方法

org.apache.commons.dbcp.BasicDataSource的解决方法,commons-dbcp.jar、commons-pool.jar

【在Maven项目中,手动连接和使用连接池(dbcp\c3p0)连接数据库的流程】

在Maven项目中,手动连接和使用连接池(dbcp\c3p0)连接数据库的流程对比

YYT9527的博客 3897

commons.dbcp.BasicDataSource jar包

commons-pool.jar和commons-dbcp.jar

jsp获取连接池的实时连接数_PHP进阶教程-实现一个简单的MySQL连接池

​什么是连接池?顾名思义,连接池就是一堆预先创建好的连接,跟容器会有点像。连接池主要是在某种需要网络连接的服务,提前把连接建立好存起来,然后存放在一个池子里面,需要用到的时候取出来用,用完之后再还回去。MySQL连接过程client 建立连接的认证过程1、server 监听端口2、client 向server建立TCP连接3、server 向client发送挑战码报文(报文详细内容在下文中有分析)...

weixin_39631572的博客 237

DBCP数据源BasicDataSource

包含com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar和com.springsource.org.apache.commons.pool-1.5.3.jar

VHDL按键消抖(状态机版本)

检测下降沿:设置一个和,分别代表之前的之前和之前的信号状态,若两个信号key_in_d2=1,key_in_d1=0,他俩的not key_in_d2 and key_in_d1为1,则说明下降沿产生,把它设置为标志位key_flag。延时计数:50MHz的板子每次计数需要20ns,而抖动时间大约为5-10ms。所以取7ms,作为延时时间。可以看见当检测到下降沿时,开始计数计数计满再次检测,若为低电平则为按下按键,否则为抖动。通过检测下降沿来临,延时计数再次检测,如果为低电平则为按键按下。

qq_69639216的博客 1084

Idea+Maven+DBCP

使用Idea编辑器通过Maven项目来写一个简单的DBCP数据库连接池 因为用到了连接池的工具包 所以记录一下 以便有人需要用到 创建Maven项目(不做详细解释了) 在pom文件中添加依赖 (添加数据库的依赖是因为我这里测试用到了数据库)<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <ve

ShawnAndLove的博客 1241

MATLAB实战:5步搞定铣削稳定性叶瓣图(附完整代码解析)

本文提供了一份基于MATLAB的铣削稳定性叶瓣图实战指南。通过5个清晰步骤,从动力学原理出发,详细解析了利用半离散法构建稳定性判据、模块化代码设计、高效参数扫描及高级可视化的完整流程,并附有完整代码,帮助工程师快速预测和规避加工颤振,优化铣削工艺参数。

weixin_29197051的博客 196

Spring+Maven+DBCP配置数据库连接

首先maven引入: &lt;dependency&gt; &lt;groupId&gt;mysql&lt;/groupId&gt; &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt; &lt;version&gt;8.0.11&lt;/version&gt; &lt;/depend

qq_38409944的博客 7945

智能车小白也能懂:手把手教你用LM358和工字电感搭建电磁循迹模块(附PCB设计避坑)

本文详细介绍了如何利用LM358运放和工字电感搭建智能车电磁循迹模块,从电感选型、电路设计到PCB布局和焊接调试,提供全流程实战指南。特别针对新手常见问题,如信号干扰、电路饱和等,给出具体解决方案和参数配置,帮助智能车比赛爱好者快速掌握电磁循迹技术。

weixin_30307921的博客 402

WPS占用C盘空间解决方案与优化技巧

办公软件在长期使用过程中会产生大量缓存和历史文件,这些文件往往隐藏在系统目录中,导致磁盘空间被无声占用。以WPS为例,其版本历史备份、云同步缓存和模板库是主要空间占用源。通过分析文件存储机制,可以定位到具体的缓存路径,如AppData目录下的Kingsoft文件夹。针对这一问题,有效的解决方案包括手动清理、自动化脚本和注册表优化。对于需要持续监控的场景,可以结合PowerShell脚本和任务计划实现自动化管理。在实际应用中,这些技术不仅适用于WPS,也可迁移到其他办公软件的空间优化中,是每位IT运维人员和高

weixin_30788239的博客 458

【SSM】@RequestMapping注解、org.apache.commons.dbcp.BasicDataSource报错问题

@RequestMapping注解报错 原因 因为Maven中没有导入相应的jar包 解决方法 在Maven配置文件pom.xml中添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version&g

weixin_45156425的博客 1312

UG NX二次开发(C#)--详细讲述编程模板NXOpen_CS_Wizard的代码意义,帮你轻松进入NXOpen(C#)二次开发

有几个读者私信问我,在看了“NX1957在VS2019上二次开发的环境配置”后,能完成了UG NX二次开发(C#)模板的配置,也能根据模板创建工程,但是对工程文件.cs不甚理解;并且,在UG Styler新建完成后,其也有一个dlx文件和.cs文件,也不清楚怎么使用。本文先对UG NX二次开发(C#)模板文件进行讲解,在下一个博客中,讲解Styler新建后的模板文件。以上就是对编程模板NXOpen_CS_Wizard(c#)的讲解,其实只要明白了逻辑关系,编程实现只是时间问题,祝你好运。

GimiGimmy 1786

Spring--java.lang.ClassNotFoundException: org.apache.commons.dbcp2.BasicDataSource。Maven依赖包错误

问题,配置redis连接spring,配置mybatis的datasourc,使用的是dbcp2和pool2,jedis 2.9.0 出现的问题:Spring--java.lang.ClassNotFoundException: org.apache.commons.dbcp2.BasicDataSource 注意,这里是dbcp2。 我再pom.xml里面写入了这三个依赖,也还报这个错...

xuwang777的博客 5342

Q3D提取PCB走线RLCG参数

介绍一种提取PCB走线寄生电容和寄生电感的方法

sinat_15150363的博客 2921

Exchange Server 2013 运维系列——邮箱配额设置(管理中心)

邮箱配额需要设置三个参数: 1、发出警告限制:表示在向用户发出警告之前的最大存储限制。如果邮箱大小达到或超过指定值,Exchange 将向邮箱用户发送警告消息。 2、禁止发送限制:表示邮箱的“禁止发送”限制。如果邮箱大小达到或超过指定的限制,Exchange 将阻止邮箱用户发送新邮件,并显示一条描述性错误消息。 3、禁止发送和接收限制:表示此邮箱的“禁止发送和接收”限制。如果邮箱大小

白昼的技术专栏 1万+

Oracle:Maven仓库中添加Oracle JDBC驱动以及maven项目导入本地jar包步骤

由于Oracle授权问题,Maven3不提供Oracle-JDBC-driver 一.首先要得到Oracle JDBC Driver 1.通过Oracle官方网站下载相应版本:http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html 2.通过Oracle的安装目录获得,位置在“{ORACL...

yubin1285570923的博客 2150

用 AI 设计力打造专业 UI_UX:在 Trea、Qoder 等 AI IDE 中集成 ui-ux-pro-max-skill

的核心是知识库Trea 和 Qoder 虽未被--ai all原生支持,但完全可通过@folder手动集成使用后,你的 AI 生成代码将从“功能可用”跃升至“设计专业”这是零成本提升产品质感的最佳实践之一🎨好的 UI 不应是设计师的专利,而是每个开发者的默认能力。然后在 Trea 或 Qoder 中输入—— 让 AI 成为你最懂设计的结对编程伙伴。

lpfasd123的博客 7103

maven与springMVC之数据库dbcp、c3p0、bonecp

前面几篇文章已经基本把maven与springMVC组合的框架说清楚了,现在欠缺的就是和数据库链接方面的介绍了。 首先需要引入dbcp、c3p0、bonecp以及mysql的依赖,如下: commons-dbcp commons-dbcp 1.4 c3p0 c3p0 0.9.1.2 com.jolbox b

w2865673691的专栏 9614

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Agent≠软件?飞书开发套件“炸场”,企业级AI应用格局打开!

数字化是AI与智能化的基础,B端的AI落地是一场马拉松。”从7月9日的2025飞书未来无限大会,我们看到了飞书助力企业AI Ready的用心。会上,飞书甩出了一套 助力CIO落地AI的开发套件—飞书开发套件——从能直接干活的Agent平台,到对话就能搭系统的工具,全都端上了桌。其中包括含AI量极高的款产品,飞书妙搭、飞书aPaaS和飞书Aily,分别满足轻型、复杂系统和企业级Agent的搭建需求,用AI拓展CIO和数字化团队的带宽、助力企业开发智能系统和Agent。

优快云资讯 3047

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android连接ecs sql server_如何通过SSL连接到RDS数据库服务?

我们开通RDS数据库服务后,客户端访问数据库服务时,考虑到数据安全性,会采用ssl方式连接数据库。01 什么是SSL?SSL(Secure Socket Layer:安全套接字层)利用数据加密、身份验证和消息完整性验证机制,为基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议提供的功能主要有:1、 数据传输的机密性:利用对称密钥算法对传输的数据进行加密,确保数据在网络上之传输过程中不会被截...

weixin_39680380的博客 239

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

dbcp3个jar包_idea 中解决maven 包冲突的问题

出处:https://blog.youkuaiyun.com/fnwibwj/article/details/81709733一.冲突问题比如项目中引用了两个 fastjson.jar的版本,分别为fastjson:1.2.28fastjson:1.2.3我们用到了1.2.28中的某个类, 比如 A类,在版本更新中 1.2.3版本去掉了这个类,然而我们项目中maven 却把1.2.3的 jar 打包...

weixin_31774171的博客 292

Druid(数据库连接池)和JdbcTemplate(封装JDBC)使用

导入jar及properties文件 1.1 jar 1.1.1 maven <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1...

s_156的博客 1869

spring mvc+mybatis+dbcp+maven多模块项目的搭建遇到的问题(一)

项目搭建的过程网上一大堆一、首先碰到的是依赖的问题由于Maven的依赖关系是传递性的,因此ecar_web只需要依赖于ecar_service依赖可以一层套一层,也就是说在web依赖service,service依赖dao层的时候,web层可以直接使用dao层的类的。现在项目的依赖关系ecar_api 和 ecar_web依赖于ecar_serviceecar_service依赖于ecar_han...

searlas的博客 447

tomcat DBCP配置入门(一)

来自tomcat-docs简介DBCP利用了Jakarta-Commons数据库连接池。他依赖以下几个Jakarta-Commons组件:Jakarta-Commons DBCP 1.0 Jakarta-Commons Collections 2.0 Jakarta-Commons Pool 1.0 这些jar文件和你的数据库驱动jar需要安装在$CATALINA_HOME/common/lib下

huabingl的专栏 2596
上一篇: IntelliJ IDEA配置git(以华为云举例)
下一篇: Maven项目 cityFileFK05 一些知识点
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值