c3p0 连接池的基本使用方式| 学习笔记

简介: 快速学习 c3p0 连接池的基本使用方式.

开发者学堂课程【 JDBC 数据库开发进阶:c3p0 连接池的基本使用方式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/32/detail/685


c3p0 连接池的基本使用方式


内容介绍

1.c3p0 简介

2.c3p0 的使用范例

 

1.c3p0 简介

是开元免费的连接池,比较受欢迎

 

2.c3p0 的使用范例:

package cn.bl.v4_DataSource.c3p0;

import java.sql.SQLException;

import org.junit.Test;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class Demo1 { 

/** * 方式1:使用纯Java方式
* @throws Exception */ @Test public void test1() throws Exception { ComboPooledDataSource source = new ComboPooledDataSource(); source.setDriverClass("com.mysql.jdbc.Driver"); source.setJdbcUrl("jdbc:mysql://127.0.0.1:3306/aa?useUnicode=true&characterEncoding=utf-8"); source.setUser("root"); source.setPassword("000");
//获取链接
System.out.println(source.getConnection());

/*输出如下信息(除了最后一行,前面的其实都是自动输出的基本信息): 九月 23, 2018 11:40:45 上午 com.mchange.v2.log.MLog  

信息: MLog clients using java 1.4+ standard logging.

九月 23, 2018 11:40:45 上午 com.mchange.v2.c3p0.C3P0Registry banner

}
@Test
public void test2() throws SQLException {
//1.空参--默认配置
ComboPooledDataSource ds = new ComboPooledDataSource();
//2.带参--指定名称的配置
//ComboPooledDataSource ds = new ComboPooledDataSource("BarryLee

System.out.println(ds.getConnection()); //输出的信息类似test1 }  /* * 测试c3p0工具类 */ @Test public void testUtil() { System.err.println(C3P0Utils.getConnection()); } }

package cn.bl.v4_DataSource.c3p0; import java.sql.Connection; import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0Utils { private C3P0Utils() {} private static ComboPooledDataSource ds = null; private static ThreadLocaltLocal = new ThreadLocal<>(); static { ds = new ComboPooledDataSource();//读取默认配置文件 } public static DataSource getDataSource() { return ds; } public static Connection getConnection() { Connection con = tLocal.get(); if(con==null) { try {

con = ds.getConnection(); tLocal.set(con); } catch (SQLException e) { e.printStackTrace(); } } return con; } }  

图片17.png

相关文章
|
机器学习/深度学习 计算机视觉
【机器学习】回归树生成过程及举例理解
【8月更文挑战第6天】本文介绍了回归树的生成过程,并通过一个打高尔夫球时间预测的例子详细解释了如何选择分支节点和评估标准方差,以及如何确定停止条件来构建最终的树模型。
296 10
【机器学习】回归树生成过程及举例理解
|
存储 API 数据安全/隐私保护
邮箱收不到验证码邮件是什么原因
在互联网应用中,未收到验证码邮件常令人困扰。原因包括:邮件误标为垃圾、邮箱设置不当、发件服务器故障、邮箱地址输入错误,及ISP拦截。解决策略有检查垃圾邮件、清理邮箱、修正设置、确认邮箱地址无误、联系服务提供商与ISP,或尝试其他邮箱服务。使用AOKSend等可靠邮件服务可提升送达率,其优势在于高送达率、实时监测与易集成性,确保验证码邮件及时准确到达,改善用户体验。
|
机器学习/深度学习 人工智能 并行计算
现代深度学习框架构建问题之线性代数的常见概念定义如何解决
现代深度学习框架构建问题之线性代数的常见概念定义如何解决
141 3
|
运维 安全 数据库
构建多租户应用程序:深入探讨Entity Framework Core中的租户支持策略与实现
【8月更文挑战第31天】在现代软件开发中,多租户架构因高效利用资源和简化运维而备受企业青睐,尤其在SaaS应用中。本文以一个多租户在线调查应用为例,介绍如何在Entity Framework Core中实现多租户支持。首先,在实体中添加`TenantId`字段以区分不同租户的数据;其次,在查询时根据当前租户信息进行筛选。这种方法简单有效,能确保数据安全隔离,但也需关注随着租户数量增长带来的数据库管理复杂性问题,并考虑分区表等优化策略。
204 0
|
资源调度 JavaScript 前端开发
vue3怎么调用vant中的icon组件
vue3怎么调用vant中的icon组件
597 4
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
ARIMA、ARIMAX、 动态回归和OLS 回归预测多元时间序列
|
算法
判断单链表是否有环?中点如何判断?入环点如何判断?
判断单链表是否有环?中点如何判断?入环点如何判断?
324 0
|
弹性计算 Kubernetes Java
在本地 IDE 中快捷执行远程服务器命令 Command
Cloud Toolkit 新版本发布,允许开发者在本地 IDE 中快捷执行远程服务器命令 Command。
1475 71
|
存储 SQL 开发框架
软考——软件设计师:第二章:数据库技术考点总结(完整篇)(上)
软考——软件设计师:第二章:数据库技术考点总结(完整篇)(上)
软考——软件设计师:第二章:数据库技术考点总结(完整篇)(上)
|
前端开发 JavaScript
React 16.x折腾记 - (5) 记录用React开发项目过程遇到的问题(Webpack4/React16/antd等)
自己搭的脚手架,坑都是一步一步踩完的; 技术栈: react@16.6.0/ react-router-dom@v4 / webpack^4.23.1(babel7+) 闲话不多说,直入主题,有兴趣的可以瞧瞧,没兴趣的止步,节约您的时间.
297 0