Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Quá nhiều kết nối sử dụng Hibernate và mysql

Điều này là do bạn đang sử dụng nhóm kết nối được tạo ngay khi bạn xây dựng SessionFactory, nhưng các kết nối chỉ có được khi bạn mở một Phiên. Bây giờ, bạn đang đóng phiên, do đó các kết nối được giải phóng, nhưng chưa đóng và được giữ bởi nhóm. Bây giờ, bạn lại đang tạo SessionFactory, do đó tạo một nhóm mới, sau đó nhận một phiên, do đó tạo một kết nối mới, v.v.

Những gì bạn phải làm là sử dụng một Nhóm kết nối (sử dụng một SessionFactory) và lấy và giải phóng các kết nối từ cùng một nhóm.

public class DBConnection {

      private static SessionFactory factory;
      static {
            factory = new Configuration().configure().buildSessionFactory();
      }

      public Session getSession() {
            return factory.openSession();
      }

      public void doWork() {
           Session session = getSession();
           // do work.
           session.close();
      }

     // Call this during shutdown
     public static void close() {
          factory.close();
     }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP tot MySQL tải lên hình ảnh không hoạt động

  2. Định dạng số thành số viết tắt

  3. MySQL có thể kiểm tra tệp đó tồn tại không?

  4. PHP Sắp xếp tọa độ gần nhất

  5. Lỗi khi thực hiện câu lệnh cập nhật Mariadb