当前位置: 首页 > 知识库问答 >
问题:

c3p0池是否为每个数据库查询初始化?

皇甫卓君
2023-03-14

我使用postgresql+hibernate+c3p0进行池管理。

我可以看到,对于每个数据库查询,c3p0都在初始化,按照我的理解,这应该发生一次,而不是每个查询,否则有连接池有什么意义。如果我错了请改正。

相关信息:

    <property name="hibernate.connection.provider_class">org.hibernate.c3p0.internal.C3P0ConnectionProvider</property>
    <property name="hibernate.c3p0.min_size">5</property>
    <property name="hibernate.c3p0.max_size">20</property>
    <property name="hibernate.c3p0.timeout">1800</property>
    <property name="hibernate.c3p0.max_statements">0</property>
    <property name="hibernate.c3p0.idle_test_period">1500</property>



SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); //create session factory object
    Session session = sessionFactory.openSession();

    try{

    String query = "SQL query here!!!";
    list = session.createQuery(query).list();
    }catch (HibernateException e){
        System.out.println("Exception occured");
         e.printStackTrace();
    }
    finally{
        session.close();
        sessionFactory.close();
    }

共有1个答案

阎阎宝
2023-03-14

c3p0将创建一个连接池并重用这些连接,因为没有完整的代码,而且您提供的日志中没有给出重新初始化的指示,所以我可以假设您没有重用SessionFactory。

 类似资料:
  • 问题内容: 我正在尝试为我的Web应用程序配置HikariCP。我没有使用任何框架,它是一个简单的简单Java Web应用程序。当我尝试通过普通的JDBC建立连接时,它成功了,并且能够执行所有数据库操作。 但是,当我尝试与连接池建立连接时,初始化后却收到了一个我不知道的异常。 下面是我正在使用的配置,我正在上下文侦听器中对其进行初始化。我在Java 1.7上运行,带有使用HikariCP Java

  • 问题内容: 我无法确定为什么在我的Hibernate应用程序中初始化c3p0连接池需要2分钟。 这是在我的Hibernate.cfg.xml中: 构建会话工厂时,连接设置在我的HibernateUtil文件中设置。 当测试中的第一个事务为openend时,池将初始化。之后,连接和查询数据库就可以正常工作,它在开始之前仅在以下行上挂起一会儿。我对输出进行了格式化,因为我认为问题可能出在这里提到的一种

  • 问题内容: 对于J2EE容器 之外 的Java应用程序,哪个连接池库是最好的? 我听说c3p0已经过时了。 雅加达的公共池库已不再开发 因此,我只剩下BoneCP和DBPool了。从我可以看出,两者活动有限。我可以看到的主要区别是性能,BoneCP似乎可以与之抗衡。但是,文档非常薄弱。 您在现实世界中使用了哪个数据库池库,为什么?好的和坏的是什么? 问题答案: 在工作中,我们使用了BoneCP(作

  • 我有不使用Flyway的现有数据库postgres,我需要复制它。如何将现有数据库状态移动到新的空数据库?我没有任何迁移sql。所以我期待像Liquibase中的GenerateChangelog这样的命令,但在Flyway中似乎没有这样的命令。

  • 问题内容: 如果我在代码中使用如下语句 它将数组初始化为特定的东西吗?(例如0)我似乎记得此文件记录在某处,但我不确定要搜索什么。 问题答案: JLS说,在15.10数组创建表达式中 […]创建具有指定长度的一维数组,并将数组的每个组件初始化为其默认值 在4.12.5变量的初始值处表示: 对于type ,默认值为零,即。

  • 问题内容: 我需要使用SQL查询来检查数据库是否完全为空(无表)。如何才能做到这一点? 谢谢您的帮助! 问题答案: 将返回数据库中表(或视图)的实际数量。如果该数字为0,则没有表。