hibernate.cfg.xml 是 Hibernate 的核心配置文件,用于定义数据库连接、方言、SQL 日志、表结构管理及映射资源等;必须配置驱动、URL、用户名密码、dialect 和 mapping,支持 C3P0 连接池等增强功能。

hibernate.cfg.xml 是 Hibernate 框架的主配置文件,用于集中定义数据库连接参数、运行时行为、映射资源路径等核心设置。它本质上是一个 XML 格式的配置描述,Hibernate 启动时通过 Configuration().configure() 自动读取该文件(默认放在 src 或类路径根目录),构建出 SessionFactory 所需的全部环境。
核心作用:连接数据库 + 控制 ORM 行为
它不负责描述“哪个 Java 类对应哪张表”(那是 .hbm.xml 或注解的事),而是管“怎么连库、用什么方言、SQL 怎么显示、表结构怎么维护”。没有它,Hibernate 无法知道该操作哪个数据库、如何生成 SQL、是否自动建表。
本文档主要讲述的是Eclipse配置Tomcat教程;Eclipse IDE: eclipse IDE 用作 JSP 页面和 Java 文件的开发环境。Eclipse 是一个非常简单易用的 IDE 环境,它具有很多特性,可以帮助程序员快速编写并调试 Java 程序。加上 tomcat 插件之后,这个 IDE 就是管理整个 Web 项目(包括 HTML 和 JSP 页面、图标和 servlet)的一个非常优秀的工具。 Tomcat: 驱动 JSP 页面需要使用 Tomcat。Tomcat 引擎是非常好的一个
必须配置的 5 项基础内容
-
数据库驱动类:
connection.driver_class,如com.mysql.cj.jdbc.Driver(MySQL 8+)或com.microsoft.sqlserver.jdbc.SQLServerDriver -
数据库 URL:
connection.url,含地址、端口、库名、时区等,例如jdbc:mysql://localhost:3306/testdb?serverTimezone=GMT%2B8&useSSL=false -
用户名与密码:
connection.username和connection.password,明文填写(生产环境建议结合 JNDI 或外部配置中心) -
数据库方言(dialect):决定 Hibernate 如何生成符合目标数据库语法的 SQL,如
org.hibernate.dialect.MySQL8Dialect(MySQL 8)、org.hibernate.dialect.Oracle12cDialect(Oracle) -
映射资源声明:用
或告诉 Hibernate 哪些实体需要被管理
开发常用增强配置
-
SQL 日志输出:
show_sql设为true可在控制台看到执行语句;搭配format_sql=true让 SQL 更易读(但注意:日志开启会轻微影响性能) -
表结构自动管理:
hbm2ddl.auto是关键开关:-
update:推荐开发阶段使用——表不存在则建,字段少就加,数据不丢 -
validate:上线前校验用——只比对结构,不改动,不一致直接报错 -
create-drop:单元测试专用——启动建表、退出删表
-
-
连接池集成(如 C3P0):添加
hibernate.c3p0.*属性可启用连接复用,例如:-
c3p0.max_size=20(最大连接数) -
c3p0.min_size=2(空闲时保底连接数) -
c3p0.timeout=3000(空闲 3 秒后回收连接)
-
注意事项和细节
- 文件名必须是
hibernate.cfg.xml,且默认路径是类路径(classpath)根目录;若放别处,需显式传入路径:new Configuration().configure("config/hibernate.cfg.xml") - 属性名前缀
hibernate.可省略(如dialect和hibernate.dialect效果一样),但加前缀更清晰、更规范 - DTD 声明必须准确,否则解析失败;新版推荐用
https://hibernate.org/dtd/hibernate-configuration-3.0.dtd替代旧的 sourceforge 地址 - 密码等敏感信息不要硬编码在配置中,尤其不能提交到 Git;可通过系统属性、环境变量或 Spring Boot 的
@PropertySource动态注入









