So many programmers make this mistake because they don’t seem to get it. It’s not your fault as a programmer / developer. It’s just that you’re not a DBA.
You need to implement Connection pooling. It makes such a huge difference in the way your DB performance and app works it’s amazing.
So here are some links to connection pooling on a few different Databases:
Implement It properly and watch the difference in resource utilization. Especially for high traffic / DB-backed systems.