上一节已经进行了Hibernate的入门,这节主要详细的讲解映射文件和核心配置文件的配置。
1. 映射文件的配置
(1)首先引入Hibernate映射文件标签库
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
(2)映射文件的根标签
对hibernate属性文件的配置都存放在这个更标签中。
<hibernate-mapping><hibernate-mapping>
- class标签的配置
用来建立类和表的映射关系
<class> </calss>
其中的属性:
name: 类的全路径
table:数据库中表的名称
catalog: 数据库名(可以不填)
- id标签
用来建立类中的属性和数据库中表中主键的对应关系
<id></id>
其中的属性:
name: 类中的属性
column:数据库中表中的主键
length:表自动创建时的长度
type:表自动创建时的类型
- property标签配置
用于建立类中的普通属性与表中字段的对应关系
<property></property>
其中的属性:
name:类中的属性
column:数据库中表的字段
length:自动创建表时的一些条件,下同
type: 有三种写法可供选择,java(java.lang.String)、sql、hibernate(string)
not-null:
unique:
2. 核心配置文件的配置
- 同样需要引入标签库
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
下面有三部分的配置,分别时必须的配置,可选的配置,引入映射文件的配置,这些配置都在session-factory中
- 必须的配置
这是连接数据库的基本参数
// 数据库驱动
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
// 数据库url
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
// 数据库账户
<property name="hibernate.connection.username">root</property>
// 数据库密码
<property name="hibernate.connection.password">1234</property>
// hibernate方言配置
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
对于方言的解释:Hibernate的底层依然使用sql语句执行数据的操作,虽然所有数据库都支持使用标准SQL语句,但所有的数据库都对标准sql语句进行了扩展,所以在语法细节上有一些差异。因此,我们需要配置方言让Hibernate识别这些差异。
- 可选的配置
<!-- 可选配置 -->
<!-- 打印SQL语句到控制台 -->
<property name="hibernate.show_sql">true</property>
<!-- 格式化sql语句 -->
<property name="hibernate.format_sql">true</property>
<!-- 自动创建表 -->
<property name="hibernate.hbm2ddl.auto">update</property>
自动创建表的属性对应值:
none:不适用hibernate创建表
create:如果数据库中存在表,删除重新创建,没有表的话直接创建
create-drop:如果数据库中存在表,删除重新创建,没有表的话直接创建,使用结束之后,删除表
update:如果数据库中存在表,使用原有表,没有表的话直接创建(更新表结构)
validate:只能使用数据库中原有的表(校验映射和表结构,不一致会报错)
- 映射文件的引入
将配置的映射文件引入进来
<!-- 配置映射文件 -->
<mapping resource="time/Customer.hbm.xml "/>