hibernate.cfg.xml配置文件简介
1.Hibernate 核心配置文件,也即 hibernate.cfg.xml,还可以是hibernate.properties格式。
包含了数据库连接的相关信息以及映射文件的基本信息。通常情况下,该配置文件默认放在项目的 src 目录下,当项目发布后,该文件会在项目的 WEB-INF/classes 路径下。
2.常用的模板
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Hibernate 连接数据库的基本信息 --> <property name="connection.username">root</property> <property name="connection.password">123456</property> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///hibernate</property> <!-- Hibernate 的基本配置 --> <!-- Hibernate 使用的数据库方言 --> <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> <!-- 运行时是否打印 SQL --> <property name="show_sql">true</property> <!-- 运行时是否格式化 SQL --> <property name="format_sql">true</property> <!-- 生成数据表的策略 --> <property name="hbm2ddl.auto">update</property> <!-- 设置 Hibernate 的事务隔离级别 --> <property name="connection.isolation">2</property> <!-- 删除对象后, 使其 OID 置为 null --> <property name="use_identifier_rollback">true</property> <!-- 配置 C3P0 数据源 --> <property name="hibernate.c3p0.max_size">10</property> <property name="hibernate.c3p0.min_size">5</property> <property name="c3p0.acquire_increment">2</property> <property name="c3p0.idle_test_period">2000</property> <property name="c3p0.timeout">2000</property> <property name="c3p0.max_statements">10</property> <!-- 设定 JDBC 的 Statement 读取数据的时候每次从数据库中取出的记录条数 --> <property name="hibernate.jdbc.fetch_size">100</property> <!-- 设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小 --> <property name="jdbc.batch_size">30</property> <!-- 需要关联的 hibernate 映射文件 .hbm.xml --> <mapping resource="com/**/Customer.hbm.xml"/> <mapping resource="com/**//Order.hbm.xml"/> </session-factory> </hibernate-configuration>
(1)在 XML 配置文件中 dtd 信息在 Hibernate 核心 Jar 包(hibernate-core-xxx.jar)下的 org.hibernate.hibernate-configuration-3.0.dtd 中找到,使用时直接复制即可;
(2)根元素是 <hibernate-configuration>,该元素中包含一个 <session-factory> 子元素,通常情况下,一个session-factory节点代表一个数据库;
(3)<property> 元素,用于配置 Hibernate 连接数据库的各种信息,例如,数据库的方言、驱动、URL、用户名、密码等。
property 属性名 | 描述 | 是否为必需属性 |
---|---|---|
connection.url | 指定连接数据库 URL | 是 |
hibernate.connection.username | 指定数据库用户名 | 是 |
hibernate.connection.password | 指定数据库密码 | 是 |
connection.driver_class | 指定数据库驱动程序 | 是 |
hibernate.dialect | 指定数据库使用的 SQL 方言,用于确定 Hibernate 自动生成的 SQL 语句的类型 | 是 |
hibernate.show_sql | 用于设置是否在控制台输出 SQL 语句 | 否 |
hibernate.format_sql | 用于设置是否格式化控制台输出的 SQL 语句 | 否 |
hibernate.hbm2ddl.auto | 当创建 SessionFactory 时,是否根据映射文件自动验证表结构或自动创建、自动更新数据库表结构。 该参数的取值为 validate 、update、create 和 create-drop |
否 |
hibernate.connection.autocommit | 事务是否自动提交 | 否 |
(4)<mapping> 元素,可以包含一个或多个 <mapping> 元素,它们用来指定 Hibernate 映射文件的信息,加载映射文件。
<mapping resource="com/mvc/test/User.hbm.xml"/>
(5)注意部分属性的使用
hibernate.cfg.xml中的hbm2ddl.auto
该属性可帮助程序员实现正向工程, 即由 java 代码生成数据库脚本, 进而生成具体的表结构 。取值 create | update | create-drop | validate。
① create
会根据*.hbm.xml 文件来生成数据表, 但是每次运行都会删除上一次的表 ,重新生成表, 哪怕二次没有任何改变 。
② create-drop
会根据 *.hbm.xml 文件生成表,但是SessionFactory一关闭, 表就自动删除 。
③ update
最常用的属性值,也会根据 *.hbm.xml 文件生成表。但若 .hbm.xml 文件和数据库中对应的数据表的表结构不同, Hiberante 将更新数据表结构,但不会删除已有的行和列。
④ validate
会和数据库中的表进行比较, 若 *.hbm.xml 文件中的列在数据表中不存在,则抛出异常。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-04-24 java中的抽象类与接口