1.标识符
表示符号生成器 |
描述 |
increment |
适用于代理主建,由Hibernate自动以递增的方式生成标识符号,每次递增1 |
identity |
适用于代理主键,由底层数据库生成标识符,前提是底层数据库支持自动增长字段类型 |
sequence |
适用于代理主键,Hibernate根据体层数据库的序列来生成标识符,前提是数据库支持序列 |
hilo |
适用于代理主键,Hibernate根据high/low 算法来生成标识符,将特定表字段作为high值,默认情况下选用hibernate_unique_key 表next_hi字段 |
native |
适用于代理主键,根据底层数据库自动生成标识符的支持能力来选择identity,sequence或者 hilo |
uuid.hex |
适用于代理主键,Hibernate采用128为的UUID算法类生成标识符,UUID算法能够在网络环境中生成唯一的字符串标识符,字符串标识符的主键比整数的主键更多的数据空间,所以选择这种标识符生成策略不流行 |
assigned |
使用自让主键,有java应用程序负责生成标识符,为了使java应用程序设置OID,不能将setID()方法声明为private类型,应该尽量避免使用自然主键. |
2.class元素的属性
name:对应持久化类
table:对应数据库表名
dynamic-update:动态更新,默认为false,指定用于update的sql将在运行时动态的生成且只改变更改过的字段
dynamic-insert:动态插入,知道用于insert语句的动态生成,并且值插入非空的值
select-before-update:执行update之前先执行select语句,若没有修改则不进行update,这通常会影响性能,但是可以防止对upate触发器进行不必要的触发.
lazy:延迟加载,默认为true;
3.configuration 对象用于读取配置文件并且创建SessionFactory对象,
configuration con=new Configuration().configure();
4.SessionFactory 对应一个数据存储源,线程安全, 重量级
SessionFactory factory=con.buildSessionFactory();
5.session 非线程安全,轻量级,
Session session=factory.openSession();
6.Transaction 必须关闭
在对数据据进行增加,修改,删除的操作时候,必须添加Transaction
Transaction tr=session.beginTransaction();
tr.commit();