【问题标题】:Problems with hibernate c3p0 netbeans休眠 c3p0 netbeans 的问题
【发布时间】:2015-05-07 06:18:50
【问题描述】:

我正在尝试将 C3P0 用作 hbernate 中的连接提供程序。我正在使用 netbeans 8.0 并添加了 Hibernate 4.x(JPA 2.0) 库。

这是我的配置:

public Session getOpenSession() {
Configuration pgConf = new Configuration();
pgConf.setProperty(Environment.DIALECT, "org.hibernate.dialect.PostgreSQLDialect");
pgConf.setProperty(Environment.DRIVER, "org.postgresql.Driver");
pgConf.setProperty(Environment.URL, "jdbc:postgresql://localhost:5432/testdb");
pgConf.setProperty(Environment.USER, "user");
pgConf.setProperty(Environment.PASS, "pass");
pgConf.setProperty(Environment.POOL_SIZE, "20");
pgConf.setProperty(Environment.CONNECTION_PROVIDER, "org.hibernate.connection.C3P0ConnectionProvider");
pgConf.setProperty(Environment.C3P0_MIN_SIZE, "7");
pgConf.setProperty(Environment.C3P0_MAX_SIZE, "53");
pgConf.setProperty(Environment.C3P0_TIMEOUT, "100");
pgConf.setProperty(Environment.C3P0_MAX_STATEMENTS, "50");
pgConf.setProperty(Environment.C3P0_IDLE_TEST_PERIOD, "1000");
pgConf.setProperty("hibernate.c3p0.validate", "true");

return pgConf.buildSessionFactory().openSession();
}

当我调用这些方法时,它会抛出以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: com/mchange/v2/log/MLog
at com.mchange.v2.c3p0.DataSources.<clinit>(DataSources.java:72)    at com.mchange.v2.c3p0.DataSources.<clinit>(DataSources.java:72)
at org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider.configure(C3P0ConnectionProvider.java:197)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:223)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:89)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:76)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:160)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:132)
at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1818)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1776)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1861)
at cu.uci.nimbus.Util.getPGSession(Util.java:193)
at cu.uci.nimbus.evaluacion.util.SourceProvider.<init>(SourceProvider.java:45)
at cu.uci.nimbus.evaluacion.impl.EvaluadorImpl.<init>(EvaluadorImpl.java:75)
at cu.uci.nimbus.Main.eval(Main.java:140)
at cu.uci.nimbus.Main.main(Main.java:84)
Caused by: java.lang.ClassNotFoundException: com.mchange.v2.log.MLog
at java.net.URLClassLoader$1.run(URLClassLoader.java:359)
at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 18 more

Java 结果:1

为了解决这个错误,我添加了 mchange-commons-java-0.2.8.jar,其中包含 com.mchange.v2.log.MLog 类,但仍然没有工作。

PS:为我的英语道歉。

【问题讨论】:

    标签: java hibernate orm configuration c3p0


    【解决方案1】:

    hibernate-core 不附带 C3P0 模块,因此您还必须将hibernate-c3p0 模块添加到您的项目依赖项中:

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>4.3.8.Final</version>
    </dependency>   
    

    如果你有,也试试添加 C3P0 依赖:

    <dependency>
        <groupId>c3p0</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.1.2</version>
    </dependency>
    

    【讨论】:

    • hibernate-c3p0 带有 Netbeans 的 Hibernate 4.x(JPA 2.0) 库
    • 检查我更新的答案。尝试显式添加 c3p0。
    • 查看piture c3p0 包括在内。
    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    相关资源
    最近更新 更多