I had a similar problem in a former project.
Since I had multiple threads in the same java applaication with all there own connection. I impleted a Connection Pool system where they shared the connections. It reduce the number of connection to the database and help a lot.
Mysql connector J comes with a
pooling system. I remember I did not use it... don't remember why... But it's not to hard to code your self