一、常用的接口和类
- Configuration ---- hibernate 中用来加载配置文件的类。
- SessionFactory ---- 是hibernate中Session工厂,主要用来创建,管理Session。
- ServiceRegistryBuilder ---- Hibernate 服务创建器。
- ServiceRegistry ---- Hibernate 服务
- Session(接口)---- Hibernate中,框架与数据库的一次会话。
- Transaction ---- 事务对象,主要管理hibernate中的事务问题。
二、Hibernate配置文件
在使用Hibernate框架时,我们都会编写一个文件名为 hibernate.cfg.xml
的配置文件 ,该配置文件中主要是配一些公用的东西,比如数据库连接,hibernate属性,加载映射文件。
其中必选的配置属性是:数据库连接
。
可选的配置属性:
- hibernate.dialect //数据库方言,主要用来配置将对象操作转换成那种数据类型的SQL语句。
- hibernate.show_sql // 在控制台输出SQL语句,为了方便调试,部署阶段可以删除掉!没用。
- hibernate.format_sql // 美化SQL的
- hibernate.hbm2ddl.auto // 自动建表,有四个可选值。
validate:验证模式。如果数据库表已经存在,Name会检查数据和实体类。
create:每次重启SessionFactory,都会重新创建表。
update:更新模式(常用)每次执行之前,都会检查数据库是否有表,表字段是否和实体类匹配。
如果有表,并且字段匹配,直接执行。
如果没有表,则创建。
如果有表,但是字段不匹配,如果实体类中有的属性,而数据库表中没有,则往数据库添加相应的字段。
create-drop: 每次启动,都创建新表。每次显示关闭SessionFactory的时候,都会删除表。
三、Hibernate映射文件
Hibernate映射文件主要配置实体类到数据库表、实体属性到表字段之间的映射(对应关系)。
映射文件的头:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
映射文件的根节点:
<hibernate-mapping package="com.ywb.hibernate_hello.domain">
特别注意:
- Package 对应着实体类的包。理论上,一个映射文件里面可以配置n多个类。
- 使用Class标签。
Class 的 name 属性,对应实体类的类名。 table对应数据库的表名。
默认情况,table可以省略,类名等于表名(数据库不区分大小写)。 - Id,对应数据库的主键。
- name 是实体类标识主键的那个属性名
- column是数据库中标识主键的那一列。
- property 对应实体的一个属性,name是属性名,column是对应属性在数据库中的列。
以上为固定写法,只有class的值可以变。