为了账号安全,请及时绑定邮箱和手机立即绑定

无法为 hibernate 项目创建请求的服务

无法为 hibernate 项目创建请求的服务

慕妹3242003 2023-09-06 16:54:14
当我尝试使用 Eclipse 中的 PostgreSQL 使用 Jdbc 配置来运行 Hibernate 示例项目时,出现错误“线程“main”中的异常 org.hibernate.service.spi.ServiceException: 无法创建请求的服务 [org.hibernate.engine. jdbc.env.spi.JdbcEnvironment] “。即使在搜索类似类型的问题后,我也无法解决此错误。这是为了使用Hibernate 5.2.17、PostgreSQL 11和Jdk 1.8运行新的 hibernate 项目。我尝试使用 Hibernate v4.2.0 运行,但它给出了 jdbc 错误“ClassLoadingException”。我的 hibernate.cfg.xml 文件:<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD//EN""http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration>    <session-factory>        <property name="hibernate.connection.driver_class">org.postgres.Driver</property>        <property name="hibernate.connection.url">jdbc:postgres://localhost:5432/hibernatedb</property>        <property name="hibernate.connection.username">postgres</property>        <property name="hibernate.connection.password">password</property>        <property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>        <property name="connection.pool_size">1</property>        <!-- Disable the second-level cache -->        <property name="cache.provider_class">org.hibernate.NoCacheProvider</property>        <!-- Echo all executed SQL to stdout -->        <property name="show_sql">1</property>        <!-- Drop and re-create the database schema on startup -->        <property name="hibernate.hbm2ddl.auto">create</property>        <!-- Names the annotated entity class -->        <mapping class="home.practice.hibernate.dto.UserDetails"/>    </session-factory></hibernate-configuration>我的模型类 ieUserDetails.javapackage home.practice.hibernate.dto;import javax.persistence.Entity;import javax.persistence.Id;@Entitypublic class UserDetails {    @Id    private int userId;    private String userName;    public int getUserId() {        return userId;    }
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

当您看到带有如下堆栈跟踪的异常时:

Caused by: java.lang.ClassNotFoundException: Could not load requested class : org.postgres.Driver
    [...]
    at java.lang.Class.forName(Unknown Source)
    [...]

类路径中很可能没有类加载器由于 Class.forName 调用而尝试加载的类。

当使用 Class.forName 动态加载类时,该类仅在运行时需要,而不是在编译时需要,并且当不可用时,它会生成此类错误。

您的 hibernate.cfg.xml 中有一个拼写错误:

<property name="hibernate.connection.driver_class">org.postgres.Driver</property>

driver_classClass.forName这是传递给堆栈跟踪中的调用的类;postgres jdbc 驱动程序的正确类名org.postgresql.Driver不是org.postgres.Driver,所以

<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>


查看完整回答
反对 回复 2023-09-06
  • 1 回答
  • 0 关注
  • 85 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信