关闭SQL连接Java Web服务

关闭SQL连接Java Web服务,java,sql,mysql,web-services,garbage-collection,Java,Sql,Mysql,Web Services,Garbage Collection,我正在用Java编写一个Web服务,创建并调用这个类: public class Manager{ private Connection aConnection; public CacheManager(){ //We get a connection aConnection = java.sql.DriverManager.getConnection("jdbc:mysql://localho

我正在用Java编写一个Web服务,创建并调用这个类:

    public class Manager{

        private Connection aConnection;


        public CacheManager(){
            //We get a connection
                aConnection = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/mydb?user=root&password=";


        }
// Insert a datalist into a table
    public void insertIntoDB(List listData, String tableName, StringData previousData)
    {

       // Some code using database

        }
主要问题是,在调用webservice之后,连接没有立即关闭。这意味着对webservice的100次调用将创建100个到数据库的连接。如果我等待2分钟,将创建MySQL错误“连接的用户太多”,对象将被垃圾收集器销毁,webservice可以再次工作

有人知道如何绕过这个问题吗


谢谢

我认为您应该维护一个数据库连接池。例如,您可以参考。这样,在初始化类时,可以在构造函数中设置数据库连接池(比如说10个到数据库的连接)。在insertIntoDB方法中,首先从连接池获得连接,执行数据库CRUD操作,最后返回到连接池的连接。这样,您就永远不会通过创建多个连接来对数据库施加压力。
每次调用创建连接也会使速度变慢,threr是此调用的反模式。

我必须在glassfish上创建一个连接池,然后每次我需要程序中的连接时,我都会“获取”一个连接,然后立即释放它。我不再在构造函数中获得连接,只是在我的函数中