You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven Web项目集成Hibernate连接MySQL提示找不到合适驱动

Maven Web项目中Hibernate连接MySQL出现"No suitable driver found"问题

我是Hibernate初学者,之前创建普通Maven项目时能正常连接MySQL数据库,但搭建Maven Web项目并复用相同的hibernate.cfg.xml配置时,出现了"No suitable driver found"错误。我排查过数据库URL和依赖库,参考了同类问题的解决方案还是没解决,也没找到针对Maven Web项目的特定方案。我用的是Eclipse Neon IDE、MySQL 8版本,项目没有普通Web项目的lib文件夹,不确定是不是项目结构的问题。

报错信息

May 11, 2023 11:32:02 AM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: No suitable driver found for jdbc:mysql://localhost:3306/myhiber
org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService.....

pom.xml内容

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.todo</groupId>
  <artifactId>NoteTaker</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>NoteTaker Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
  <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.5.Final</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>NoteTaker</finalName>
  </build>
</project>

hibernate.cfg.xml内容

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
    <property name="connection.driver.class">com.mysql.cj.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/myhiber</property>
    <property name="connection.username">root</property>
    <property name="connection.password">root</property>
    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
    <property name="hbm2ddl.auto">update</property>
    <property name="show_sql">true</property>
    <mapping class="com.entities.Note"/>    

</session-factory>
</hibernate-configuration>

解决方案

  • 调整MySQL驱动依赖范围:给mysql-connector-java依赖添加<scope>runtime</scope>,确保驱动包在运行时被Web容器加载:
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.28</version>
        <scope>runtime</scope>
    </dependency>
    
  • 检查Eclipse部署配置:右键项目 → Properties → Deployment Assembly,确认Maven Dependencies已添加到部署路径。若没有,点击Add → Java Build Path Entries → 选择Maven Dependencies后应用更改。
  • 修正Hibernate方言:MySQL 8适配MySQL8Dialect,替换原配置中的MySQL5Dialect:
    <property name="dialect">org.hibernate.dialect.MySQL8Dialect</property>
    
  • 完善数据库URL:MySQL 8建议添加时区参数,避免连接异常:
    <property name="connection.url">jdbc:mysql://localhost:3306/myhiber?serverTimezone=UTC</property>
    
  • 验证驱动包存在性:查看项目target/NoteTaker/WEB-INF/lib目录,确认mysql-connector-java-8.0.28.jar存在。若缺失,执行mvn clean install重新构建项目。

内容的提问来源于stack exchange,提问作者Yayati k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:17:35