首次使用Hibernate配置数据库连接遇ConfigurationException错误求助
问题原因分析
你遇到的异常核心是JAXB API实现未在类路径中找到。从Java 9开始,JAXB不再是JDK的默认内置组件,而Hibernate 5.x版本解析XML配置文件(如hibernate.cfg.xml)依赖JAXB完成XML反序列化操作,缺少相关依赖会直接导致配置文件解析失败。
解决方法
根据项目使用的构建工具,添加对应的JAXB依赖即可:
1. Maven项目
在pom.xml中插入以下依赖配置:
<dependencies> <!-- JAXB API 核心包 --> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <!-- JAXB 具体实现包 --> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-impl</artifactId> <version>2.3.3</version> <scope>runtime</scope> </dependency> <!-- JAXB 核心工具包 --> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-core</artifactId> <version>2.3.0.1</version> </dependency> <!-- JAXB 激活依赖 --> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency> </dependencies>
2. Gradle项目
在build.gradle中添加依赖:
dependencies { implementation 'javax.xml.bind:jaxb-api:2.3.1' runtimeOnly 'com.sun.xml.bind:jaxb-impl:2.3.3' implementation 'com.sun.xml.bind:jaxb-core:2.3.0.1' implementation 'javax.activation:activation:1.1.1' }
3. 手动导入JAR包
未使用构建工具的话,需手动下载以下JAR包并添加到项目类路径:
- jaxb-api-2.3.1.jar
- jaxb-impl-2.3.3.jar
- jaxb-core-2.3.0.1.jar
- activation-1.1.1.jar
额外优化建议(非当前异常原因,规避后续问题)
你的hibernate.cfg.xml有两处可优化点:
- 若使用MySQL 8.0+版本,驱动类应改为
com.mysql.cj.jdbc.Driver(原com.mysql.jdbc.Driver已过时) - 对应的方言需改为
org.hibernate.dialect.MySQL8Dialect,适配MySQL 8的新特性
内容的提问来源于stack exchange,提问作者RYAN-L
相关产品推荐
相关产品推荐

