Spring入门系列 小白跟着一起学 (6)

文章介绍了Druid和C3P0两种数据库连接池的使用。在Druid的例子中,展示了如何在pom.xml中添加依赖,以及在Spring配置文件中设置DruidDataSource的相关属性。接着,文章提到了C3P0的使用,包括添加依赖和配置数据源,同时指出尽管C3P0较旧,但仍被一些应用采纳。
摘要由CSDN通过智能技术生成

学前要求: 已学完本系列前五个
相信学完了Java Web的道友们肯定也学习过Druid

Druid 是一种开源的数据库连接池和 SQL 执行监控框架,其可以用于 Java 应用程序中的 JDBC 访问,支持众多主流数据库(包括 MySQL、Oracle、SQL Server 等)。

文章目录

Druid

pom.xml文件中导入坐标(中国境内)

<!-- druid 数据库连接池 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.4</version>
</dependency>

回忆一下,在学习JDBC的时候是否还记得自己学过一个词叫DataSource

DruidDataSource 是应用程序在使用 Druid 连接池时最常用的对象。程序通过创建 DruidDataSource 的实例获得一个可以使用的连接池,从而快速地获取和释放来自数据库的连接。

我们在系列(4)曾经提到过这么一句话:
在这里插入图片描述
所以我们不妨按住ctrl+鼠标左键进入到类中观察
在这里插入图片描述
其中涉及到的构造方法传入参数实在令人难以满足,那么便可以想到使用setter注入的必要性

<!--  管理DruidDataSource对象  -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql:///:3333/mybatis"/>
        <property name="username" value="root"/>
        <property name="password" value="123456"/> <!-- 很明显,这个密码很大众 -->
    </bean>

注入完毕后,让我们写一个案例看看是否能够正常使用

public class App11 {
    public static void main(String[] args) {
        // 打印看看结果
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

        DataSource dataSource = (DataSource) ctx.getBean("dataSource");
        System.out.println(dataSource);
    }
}

运行结果:

{
	CreateTime:"2023-05-16 07:58:44",
	ActiveCount:0,
	PoolingCount:0,
	CreateCount:0,
	DestroyCount:0,
	CloseCount:0,
	ConnectCount:0,
	Connections:[
	]
}

其中参数的各个意思如下,仅供参考(但很重要)

CreateTime:表示连接池的创建时间,即第一次使用连接池时的时间。本例中为 “2023-05-16 07:58:44”。
ActiveCount:表示当前正在被应用程序使用的连接数量。
PoolingCount:表示当前在连接池中保持空闲状态的连接数量。
CreateCount:表示从连接池创建起,已经创建的连接总数。该值随着应用程序使用连接而逐渐增加。
DestroyCount:表示从连接池创建起,已经销毁的连接总数。该值随着应用程序释放连接或连接出现错误而逐渐增加。
CloseCount:表示从连接池创建起,已经关闭的物理连接总数。因为 Druid 连接池可能会缓存和重复使用连接,所以实际上关闭的连接数量可能比 DestroyCount 少。
ConnectCount:表示从连接池创建起,已经尝试连接数据库的总次数,包括成功和失败的情况。
Connections:表示当前连接池中所有的连接对象,以一个数组的形式返回。每个连接对象包含了 JDBC Driver 提供的一些详细信息,如 IP 地址、端口号、用户名、密码等等。在这个例子中,连接池是空的,因此该数组为空数组。

下面讲解一个C3P0的例子

C3P0

虽然 c3p0 已经是比较老的一种 Java 数据库连接池实现,但实际上它依然被部分应用广泛使用

	<dependency>
        <groupId>c3p0</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.1.2</version>
    </dependency>

    <!--    想要使用c3p0就还需要下面的    -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.32</version>
    </dependency>

配置文件中

    <bean id="dataSource1" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.alibaba.druid.pool.DruidDataSource"/>
        <property name="jdbcUrl" value="com.mysql.jdbc.Driver"/>
        <property name="user" value="root"/>
        <property name="password" value="123456"/>
        <!--  看到整个文件运行的结果可以发现以上配置的信息已在其中,未配置的信息还可以如下般继续配置  -->
        <property name="maxPoolSize" value="1234"/>
    </bean>

运行案例主需要将dataSource改为dataSource1即可
配置的maxPoolSize课可以在运行结果中看到
在这里插入图片描述

总结

那么学到这我们就已经掌握了druid和C3P0的基础内容

我是哈利巴多先生,如果觉得不错,还望多多鼓励(文章不定时更新)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值