我在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 – 如何测试连接池相关推荐

  1. java 获取json的值_Java如何获取JSON数据中的值

    场景:在接口自动化场景中,下个接口发送的请求参数,依赖上个接口请求结果中的值.需要将获取值作为全局参数引用. import java.io.File; import java.io.FileInput ...

  2. java 获取所有实现类_Java动态获取实现某个接口下所有的实现类对象集合

    Java动态获取实现某个接口下所有的实现类对象集合 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行. 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这 ...

  3. java多线程的实现方式_Java 多线程(一)——多线程的实现方式

    一.前言 Java 异常的处理方式与自定义异常 我们已经讲完了,从今天开始我们来学习多线程. 二.与多线程相关的概念 2.1.并发与并行并发:指两个或多个事件在同一个时间段内发生,具体如下图所示: 并 ...

  4. java 获取手机归属地_java 获取手机归属地

    java 获取手机归属地 [2021-01-30 20:46:44]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...

  5. java改变变量编码方式_Java 10将如何改变您的编码方式

    java改变变量编码方式 突出显示Java 10中新的Java局部变量类型推断功能 早在2016年,Java社区就掀起了新的JDK增强提案(JEP): JEP 286 . 现在,两年后,局部变量类型推 ...

  6. java 获取gif帧数_Java图片处理之获取gif图一帧图片的两种方法

    前言 本文主要给大家介绍了关于Java获取gif图一帧图片的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.Java原生代码实现gif获取一帧图片 先看测试代码: pu ...

  7. java获取字符的编码_java获取文本文件字符编码的方法

    java获取文本文件字符编码的方法 发布时间:2020-06-16 09:56:08 来源:亿速云 阅读:386 作者:Leah 这篇文章将为大家详细讲解有关java获取文本文件字符编码的方法,小编觉 ...

  8. java获取图片主色_Java获取彩色图像中的主色彩的实例代码

    本文讲述了java获取彩色图像中的主色彩的实例代码.分享给大家供大家参考,具体如下: 一:基本思路 对于一张rgb色彩空间的彩色图像,很多时间我们想通过程序获得该图像有几种主要的色彩,但是对一般图像来 ...

  9. java改变变量编码方式_Java 8中的5个功能将改变您的编码方式

    java改变变量编码方式 Java 8在JVM和语言级别都包含了一些非常令人兴奋的功能. 尽管最初为该发行版设想的某些功能已扩展到第9版,或已推出第9版,但实际上有数十个新功能. 许多新添加的内容在编 ...

  10. java线程池并发_Java并发教程–线程池

    java线程池并发 Java 1.5中提供的最通用的并发增强功能之一是引入了可自定义的线程池. 这些线程池使您可以对诸如线程数,线程重用,调度和线程构造之类的东西进行大量控制. 让我们回顾一下. 首先 ...

最新文章

  1. 嵌入式linux基础知识累积
  2. 图像处理之简单脸谱检测算法
  3. fish shell 简要教程以及对bash的兼容性讨论。
  4. SpringMVC-快速入门
  5. 再论数据科学竞赛中的Data Leakage
  6. Jenkins-CI 远程代码执行漏洞复现(CVE-2017-1000353)
  7. 在页脚里显示本页统计数据_外卖营业统计里的数据您能看懂吗?
  8. 使用遇到的问题_水性漆在使用过程中遇到的问题以及解决方案
  9. activiti官网实例项目activiti-explorer之扩展流程节点属性
  10. flex布局精髓和填坑
  11. 巧妙实现表格奇偶行换色
  12. (三)IDEA部署Tomcat原理
  13. java服务器后端框架_现在主流的java后端框架
  14. 基于OpenCV-python3实现证件照换背景
  15. mac系统安装Anaconda后再打开终端自动进入Anaconda环境
  16. 逍遥模拟器拷贝android根目录文件,逍遥安卓模拟器下载的文件在哪里?
  17. Soft-RoCE部署及通信测试
  18. signature=cfd49330e04062ab770d7ddb4cfcf23a,Przed pierwszym rozbiorem Polski
  19. web开发常用工具【包含目前常用的Java IDE,接口测试,远程连接,以及其他常用工具】
  20. 网上郭德纲写的道歉信,求真伪,重口味的啊

热门文章

  1. 工作职位推荐系统的算法与架构
  2. Eclipse Code Template 设置自动加注释
  3. “国际通信展”十年的印记
  4. 买车,给点建议和意见
  5. 新概念_please send me a card.
  6. monkey_使用_脚本编写
  7. 【转贴】 java 调用SAP RFC函数 报错信息搜集
  8. 设置Emeditor为Python的简易开发工具
  9. net4.0的从客户端中检测到有潜伏危险的 Request.Form
  10. python的pandas库中read_table的参数