You don't have one DBCP Connection Pool for multiple databases, you have one pool per database. Each one has its own
JDBC URL, connection credentials - and pool settings.
Pools are collections of objects which are essentially identical. So a Connection to Database #1 and a Connection to Database #1 wouldn't make sense. How would you know which database you would be working with if you invoked getConnection on a pool of heterogeneous Connections?
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.