当前位置: 首页 > news >正文

spring学习(druid、c3p0的数据源对象管理)(案例学习)

目录

一、博客引言。

二、阿里云-druid案例准备(依赖坐标、配置文件、测试类)。

(1)初始依赖坐标、配置文件与测试类。

(2)导入阿里云-druid依赖坐标。

(3)DruidDataSource。

(4)setter方式进行属性的注入。(数据库驱动、url、用户名与密码)

(5)DruidDataSource配置bean(driverClassName、url、username、password)。

(6)测试获取配置好的数据源对象。

三、c3p0案例准备(依赖坐标、配置文件、测试类)。

(1)Maven中央仓库拿取c3p0对应依赖坐标。

(2)c3p0数据库连接池(数据源)对象(ComboPooledDataSource)。

(3)setter方式进行对应属性注入。(driverClass、jdbcUrl、user、password)

(4)测试获取对应数据源对象。

1、为了方便测试。导入数据库驱动依赖坐标。(mysql驱动)

2、测试成功!


一、博客引言。

  • 对于bean的管理、依赖注入的管理。之前的学习和复习都是基于自己新建的类的对象进行bean的管理与bean的其他操作。

  • 本篇博客的学习就是使用一个案例:简单学习如何管理第三方提供的类的bean?!!
  • 今天的学习:阿里云的druid、c3p0数据源对象的管理。

二、阿里云-druid案例准备(依赖坐标、配置文件、测试类)。

  • 因为本篇博客是管理第三方提供的类的bean。所以最基础的准备就是导入spring-context的坐标依赖。(spring使用基础环境)其次就是创建spring配置文件。

(1)初始依赖坐标、配置文件与测试类。
  • 测试类(App)。
package com.fs.test;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {public static void main(String[] args) {//获取Spring容器,读取配置文件ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("springConfig.xml");}
}
  • spring-context依赖坐标。
<dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.18</version></dependency>
</dependencies>
  • 配置文件。(初始只有"空空的架子")

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"></beans>
(2)导入阿里云-druid依赖坐标。
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version>
</dependency>
(3)DruidDataSource。
  • 导入对应依赖后,记得刷新Maven。
  • 其次找到对应需要管理的数据源(DruidDataSource)对象。


  • 复制其全类名。以便填入spring配置文件中对应<bean>标签的class属性。


(4)setter方式进行属性的注入。(数据库驱动、url、用户名与密码)
  • 对于一个数据源对象来说,这几个属性都是必须的。

  • 为啥是使用setter方式,而不是构造器方式??是因为第三方提供的类中对应没有提供实际可以用的无参构造或者有参构造!!
  • 通过进入com.alibaba.druid.pool.DruidDataSource类即可查看其对应的方法。可以发现有参构造只有一个无相关的参数。而无参构造也没有对4个属性进行赋值!


  • 按ctrl+f12查看。通过这里足以证明需要使用setter方式进行注入。


(5)DruidDataSource配置bean(driverClassName、url、username、password)。
  • 注意:setter注入方式肯定是使用标签<property>。
  • 其次driverClassName选择注入的是String类型的。


  • 依次正确填写属性name与value后,具体如下所示。
<!--管理DruidDataSource对象--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property><property name="url" value="jdbc:mysql://localhost:3306/test111"></property><property name="username" value="root"></property><property name="password" value="root123"></property></bean>

(6)测试获取配置好的数据源对象。
  • 通过spring容器加载配置文件。获取指定id的bean。
  • 因为druid内置了数据库jdbc驱动,所以这里不需要导入mysql-connector-java对应依赖坐标程序也不会抛出异常!!
  • 这样成功完成了阿里云的druid的数据源对象的管理。

三、c3p0案例准备(依赖坐标、配置文件、测试类)。

(1)Maven中央仓库拿取c3p0对应依赖坐标。
  • 前往中央仓库地址。再进行搜索即可。


<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency><groupId>com.mchange</groupId><artifactId>c3p0</artifactId><version>0.9.5.2</version>
</dependency>

(2)c3p0数据库连接池(数据源)对象(ComboPooledDataSource)。
  • 刷新Maven后可以直接找到c3p0该数据源类。


  • 复制其全类名。以便填入spring配置文件中对应<bean>标签的class属性。


(3)setter方式进行对应属性注入。(driverClass、jdbcUrl、user、password)
  • 之所以还是采用setter方式注入,还是因为提供的构造器操作方法不能使用。具体可以自己查看即可。
  • 注意:setter注入方式肯定是使用标签<property>。
  • 其次对与数据库驱动、url、用户名与密码也全是String类型的。(名字与druid稍有不同而已!!)
<bean id="dataSource2" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test111"></property><property name="user" value="root"></property><property name="password" value="root123"></property>
</bean>

(4)测试获取对应数据源对象。
1、为了方便测试。导入数据库驱动依赖坐标。(mysql驱动)
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version>
</dependency>
2、测试成功!
  • 日志打印提示:C3P0初始化成功,版本为 0.9.5.2,且开启了调试模式。且显示日志中C3P0创建了一个数据源,标识符为 1hgekllb81ukdirxo78c3l|365185bd


  • 当然。以后像这些简单数据类型的数据的注入,它的值肯定不会像这样"写死"了。通常会把数据的值写在配置文件(.properties)中。如下所示。
  • 后面学习。


http://www.mrgr.cn/news/90187.html

相关文章:

  • 【学习笔记】企业数字化转型顶层设计与企业架构TOGAF9.2-第0章 导论
  • 30~32.ppt
  • 背包问题1
  • Centos挂载镜像制作本地yum源,并补装图形界面
  • Deepseek的MLA技术原理介绍
  • 创新领先!珈和科技获评省级企业技术中心
  • 【故障处理】ADG延迟 - MRP0状态为WAIT_FOR_LOG
  • vscode无法ssh连接远程机器解决方案
  • RK3588部署Deepseek R1模型(CPU+NPU)
  • DeepSeek Coder + IDEA 辅助开发工具
  • window 安装GitLab服务器笔记
  • 【虚幻引擎UE】AOI算法介绍与实现案例
  • Vue3 Ref全家桶深度解析:掌握响应式编程精髓
  • C++ ——从C到C++
  • 【蓝耘元生代智算云平台】一键部署 DeepSeek人工智能模型
  • 【前端】几种常见的跨域解决方案
  • Spark 源码 | 脚本分析总结
  • Spring Boot接入Deep Seek的API
  • 模拟(典型算法思想)—— OJ例题算法解析思路
  • C++设计模式 - 模板模式
  • 模拟算法:深入探讨与C++实现
  • [创业之路-289]:《产品开发管理-方法.流程.工具 》-15- 需求管理 - 第1步:原始需求收集
  • 深入理解MySQL索引底层数据结构
  • 防火墙安全综合实验
  • Hive之[Hive]详细安装步骤
  • 绕组电感 - Ansys Maxwell 磁通链与电流