【发布时间】:2016-06-24 08:14:36
【问题描述】:
我正在使用 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();
}
2016 年 1 月 10 日上午 12:45:13 org.hibernate.boot.jaxb.internal.stax.LocalXmlResourceResolver resolveEntity 警告:HHH90000012:已识别过时的休眠命名空间http://hibernate.sourceforge.net/hibernate-configuration。请改用命名空间http://www.hibernate.org/dtd/hibernate-configuration。可以随时删除对过时 DTD/XSD 命名空间的支持。 2016 年 3 月 10 日上午 12:45:13 org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator instantiateExplicitConnectionProvider 信息:HHH000130:实例化显式连接提供程序:org.hibernate.c3p0.internal.C3P0ConnectionProvider 2016 年 3 月 10 日上午 12:45:13 org.hibernate.c3p0.internal.C3P0ConnectionProvider 配置 信息:HHH010002:C3P0 使用驱动程序:org.postgresql.Driver 在 URL:jdbc:postgresql://localhost:5432/test 2016 年 3 月 10 日上午 12:45:13 org.hibernate.c3p0.internal.C3P0ConnectionProvider 配置 信息:HHH10001001:连接属性:{user=postgres,password=****} 2016 年 3 月 10 日上午 12:45:13 org.hibernate.c3p0.internal.C3P0ConnectionProvider 配置 信息:HHH10001003:自动提交模式:假 2016 年 3 月 10 日上午 12:45:14 org.hibernate.c3p0.internal.C3P0ConnectionProvider 配置 信息:HHH10001007:JDBC 隔离级别: 2016 年 3 月 10 日上午 12:45:14 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager 信息:初始化 c3p0 池... com.mchange.v2.c3p0.PoolBackedDataSource@2b918bfb [ connectionPoolDataSource -> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource@e2340fd6 [acquireIncrement -> 3,acquireRetryAttempts -> 30,acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, debugUnreturnedConnectionStackTraces -> false, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hgf08x9fpqzsmd1pj0rtd|571a34ba, idleConnectionTestPeriod -> 500, initialPoolSize -> 5, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 1800, maxIdleTimeExcessConnections -> 0, maxState -> 0, maxPoolSize ->2 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, nestedDataSource -> com.mchange.v2.c3p0.DriverManagerDataSource@7ee60818 [描述-> null, driverClass -> null, factoryClassLocation -> null, identityToken -> 1hgf08x9fpqzsmd1pj0rtd|70605aa2, jdbcUrl -> jdbc:postgresql://localhost:5432/test, properties -> {user=******, password=* *****} ],preferredTestQuery -> null,propertyCycle -> 0,statementCacheNumDeferredCloseThreads -> 0,testConnectionOnCheckin -> false,testConnectionOnCheckout -> false,unreturnedConnectionTimeout -> 0,usesTraditionalReflectiveProxies -> false; userOverrides: {} ], dataSourceName -> null, factoryClassLocation -> null, identityToken -> 1hgf08x9fpqzsmd1pj0rtd|5f1ff580, numHelperThreads -> 3 ]
【问题讨论】:
标签: hibernate postgresql-9.1 c3p0