在处理连接池时,我们通常有以下代码:
connection c = pool.borrow();
try {
business-logic-using-connection(c);
}
catch(connectionException e) {
connectionBad = true;
}
finally{
if (connectionBad) {
pool.evict(c);
} else {
pool.return(c);
}
}
问题是如何使这个样板代码更简单,以便可以执行以下操作:
getConnectionAndDoWork(pool, business-logic-code)
人们可以在其中插入他们的业务逻辑,而不必在整个地方重复相同的连接管理代码。一种方法是为业务逻辑代码创建一个接口,例如doWorkWithConnection
它需要一个连接并做一些工作。但是,这限制了应该返回的业务逻辑代码;
在Java中有更好的方法吗?