配置 hibernate.cfg.xml 是 Hibernate 入门最关键的一步,需严格遵循 DTD 规范,正确设置数据库连接四要素、方言、自动建表策略、sql 输出及映射声明。

配置 hibernate.cfg.xml 是 Hibernate 入门最关键的一步,它相当于整个 ORM 框架的“启动说明书”。只要把数据库连接、方言、映射关系这几项配对,后续的增删改查就能自动运转。
基础结构不能少
这个 XML 文件必须符合 Hibernate 的 DTD 规范,开头声明和根节点要写全:
<?xml version="1.0" encoding="UTF-8"?>- 外层是
<hibernate-configuration></hibernate-configuration>,里面只允许一个<session-factory></session-factory>
数据库连接四要素必须填对
这是最常出错的部分,四项缺一不可,且名称要带 hibernate. 前缀(新版本推荐)或直接用旧名(如 connection.url),但别混用:
-
<Property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>(MySQL 8+ 用cj,老版本用com.mysql.jdbc.Driver) -
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/testdb?usessl=false&serverTimezone=UTC&characterEncoding=UTF-8</property>(URL 中务必加时区和编码参数,否则中文乱码或时间异常) <property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">your_password</property>
核心行为配置决定运行逻辑
这几项不配好,程序可能连表都建不出来,或者 SQL 完全看不到:
-
<property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>(必须和数据库版本匹配,MySQL 5.7 用MySQL5InnoDBDialect,8.0+ 推荐MySQL8Dialect) -
<property name="hibernate.hbm2ddl.auto">update</property>(开发阶段常用:create每次重建,validate只校验,none关闭自动管理) -
<property name="hibernate.show_sql">true</property>和<property name="hibernate.format_sql">true</property>(调试必备,让控制台输出可读 SQL) -
<property name="hibernate.current_session_context_class">Thread</property>(保证同一线程内 Session 复用,避免频繁 open/close)
映射文件或类要显式声明
Hibernate 不会自动扫描所有类,必须告诉它哪些实体需要管理:
- 用 XML 映射:
apping resource=”com/example/User.hbm.xml”/> - 用注解类:
- 可以写多行,每行一个映射项
配完保存为 src/main/Resources/hibernate.cfg.xml,确保在 classpath 根路径下。Hibernate 启动时会自动加载它——不需要手动指定路径。