hibernate.cfg.xml 是 Hibernate 的核心配置文件,用于定义数据库连接、方言、SQL 日志、表结构管理及映射资源等;必须配置驱动、URL、用户名密码、dialect 和 mapping,支持 C3P0 连接池等增强功能。
hi
bernate.cfg.xml 是 Hibernate 框架的主配置文件,用于集中定义数据库连接参数、运行时行为、映射资源路径等核心设置。它本质上是一个 XML 格式的配置描述,Hibernate 启动时通过 Configuration().configure() 自动读取该文件(默认放在 src 或类路径根目录),构建出 SessionFactory 所需的全部环境。
它不负责描述“哪个 Java 类对应哪张表”(那是 .hbm.xml 或注解的事),而是管“怎么连库、用什么方言、SQL 怎么显示、表结构怎么维护”。没有它,Hibernate 无法知道该操作哪个数据库、如何生成 SQL、是否自动建表。
connection.driver_class,如 com.mysql.cj.jdbc.Driver(MySQL 8+)或 com.microsoft.sqlserver.jdbc.SQLServerDriver
connection.url,含地址、端口、库名、时区等,例如 jdbc:mysql://localhost:3306/testdb?serverTimezone=GMT%2B8&useSSL=false
connection.username 和 connection.password,明文填写(生产环境建议结合 JNDI 或外部配置中心)org.hibernate.dialect.MySQL8Dialect(MySQL 8)、org.hibernate.dialect.Oracle12cDialect(Oracle) 或 告诉 Hibernate 哪些实体需要被管理show_sql 设为 true 可在控制台看到执行语句;搭配 format_sql=true 让 SQL 更易读(但注意:日志开启会轻微影响性能)hbm2ddl.auto 是关键开关:
update:推荐开发阶段使用——表不存在则建,字段少就加,数据不丢validate:上线前校验用——只比对结构,不改动,不一致直接报错create-drop:单元测试专用——启动建表、退出删表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 效果一样),但加前缀更清晰、更规范https://hibernate.org/dtd/hibernate-configuration-3.0.dtd 替代旧的 sourceforge 地址@PropertySource 动态注入