It's not hard to roll a simple pool, but that's a far cry from using something like HikariCP (Java DB pool), throwing in the word "just" is not doing anyone a favor.
Opening a new connection takes time, so you could create a singleton on startup that creates db connections. But then you might create say.. 200 connections, but your app isn't popular and only needs 4 connections, so you're wasting 196 which could be used by a different application.
You also need to deal with connections going up and down, failovers, dealing with timeouts or runaway threads hogging connections.
This is just random stuff off the top of my head.
It's not quite so easy to create a good database pooling library as it is to create a basic one.