java获取连接池方式_java – 如何测试连接池
我在Java中实现了一个非常简单的ConnectionPool.
它没有花哨的功能,只是获取/释放连接方法.
我该如何测试它是否有效?
我知道有很多连接池可以在那里使用,它比我要做的更可靠,但我只是想练习理解连接池的工作方式.
谢谢!
这是代码,以防它有帮助:
public class ConnectionPoolImpl implements ConnectionPool {
private Vector connections; // The connections container
String url;
String username;
String password;
/**
* Instanciates a new MySQLConnectionPool
* @param nbConnectionsMax
*/
public ConnectionPoolImpl(String DBUrl, String username, String password){
this.connections = new Vector();
this.url = DBUrl;
this.username = username;
this.password = password;
}
/**
* Returns a connection from the pool, if some are available, or create a new one.
*
* @return the connection.
*/
public Connection getConnection() throws SQLException {
synchronized(this.connections){
// Checking if there is an available connection to return
for(PooledConnection c : this.connections){
if(!c.isUsed()){
c.setUsed();
return c.getConnection();
}
}
// If there are none, open a new one and return it
Connection conn = DriverManager.getConnection(url, username, password);
PooledConnection pConn = new PooledConnection(conn);
pConn.setUsed();
connections.add(pConn);
return pConn.getConnection();
}
}
/**
* Releases a connection to the pool.
*
* @param con the connection to release.
*/
public void releaseConnection(Connection con) throws SQLException {
synchronized(this.connections){
for(PooledConnection c : this.connections){
if(c.getConnection().equals(con)){
c.setFree();
return;
}
}
}
}
}
我的PooledConnection.java:
public class PooledConnection {
private Connection conn;
private boolean used;
public PooledConnection(Connection conn){
this.conn = conn;
this.used = false;
}
public void setUsed(){
this.used = true;
}
public void setFree(){
this.used = false;
}
public boolean isUsed(){
return this.used;
}
public Connection getConnection(){
return this.conn;
}
}
java获取连接池方式_java – 如何测试连接池相关推荐
- java 获取json的值_Java如何获取JSON数据中的值
场景:在接口自动化场景中,下个接口发送的请求参数,依赖上个接口请求结果中的值.需要将获取值作为全局参数引用. import java.io.File; import java.io.FileInput ...
- java 获取所有实现类_Java动态获取实现某个接口下所有的实现类对象集合
Java动态获取实现某个接口下所有的实现类对象集合 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行. 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这 ...
- java多线程的实现方式_Java 多线程(一)——多线程的实现方式
一.前言 Java 异常的处理方式与自定义异常 我们已经讲完了,从今天开始我们来学习多线程. 二.与多线程相关的概念 2.1.并发与并行并发:指两个或多个事件在同一个时间段内发生,具体如下图所示: 并 ...
- java 获取手机归属地_java 获取手机归属地
java 获取手机归属地 [2021-01-30 20:46:44] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...
- java改变变量编码方式_Java 10将如何改变您的编码方式
java改变变量编码方式 突出显示Java 10中新的Java局部变量类型推断功能 早在2016年,Java社区就掀起了新的JDK增强提案(JEP): JEP 286 . 现在,两年后,局部变量类型推 ...
- java 获取gif帧数_Java图片处理之获取gif图一帧图片的两种方法
前言 本文主要给大家介绍了关于Java获取gif图一帧图片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.Java原生代码实现gif获取一帧图片 先看测试代码: pu ...
- java获取字符的编码_java获取文本文件字符编码的方法
java获取文本文件字符编码的方法 发布时间:2020-06-16 09:56:08 来源:亿速云 阅读:386 作者:Leah 这篇文章将为大家详细讲解有关java获取文本文件字符编码的方法,小编觉 ...
- java获取图片主色_Java获取彩色图像中的主色彩的实例代码
本文讲述了java获取彩色图像中的主色彩的实例代码.分享给大家供大家参考,具体如下: 一:基本思路 对于一张rgb色彩空间的彩色图像,很多时间我们想通过程序获得该图像有几种主要的色彩,但是对一般图像来 ...
- java改变变量编码方式_Java 8中的5个功能将改变您的编码方式
java改变变量编码方式 Java 8在JVM和语言级别都包含了一些非常令人兴奋的功能. 尽管最初为该发行版设想的某些功能已扩展到第9版,或已推出第9版,但实际上有数十个新功能. 许多新添加的内容在编 ...
- java线程池并发_Java并发教程–线程池
java线程池并发 Java 1.5中提供的最通用的并发增强功能之一是引入了可自定义的线程池. 这些线程池使您可以对诸如线程数,线程重用,调度和线程构造之类的东西进行大量控制. 让我们回顾一下. 首先 ...
最新文章
- 嵌入式linux基础知识累积
- 图像处理之简单脸谱检测算法
- fish shell 简要教程以及对bash的兼容性讨论。
- SpringMVC-快速入门
- 再论数据科学竞赛中的Data Leakage
- Jenkins-CI 远程代码执行漏洞复现(CVE-2017-1000353)
- 在页脚里显示本页统计数据_外卖营业统计里的数据您能看懂吗?
- 使用遇到的问题_水性漆在使用过程中遇到的问题以及解决方案
- activiti官网实例项目activiti-explorer之扩展流程节点属性
- flex布局精髓和填坑
- 巧妙实现表格奇偶行换色
- (三)IDEA部署Tomcat原理
- java服务器后端框架_现在主流的java后端框架
- 基于OpenCV-python3实现证件照换背景
- mac系统安装Anaconda后再打开终端自动进入Anaconda环境
- 逍遥模拟器拷贝android根目录文件,逍遥安卓模拟器下载的文件在哪里?
- Soft-RoCE部署及通信测试
- signature=cfd49330e04062ab770d7ddb4cfcf23a,Przed pierwszym rozbiorem Polski
- web开发常用工具【包含目前常用的Java IDE,接口测试,远程连接,以及其他常用工具】
- 网上郭德纲写的道歉信,求真伪,重口味的啊