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;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值