HIbernate 基础

阅读更多
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();
 

你可能感兴趣的:(Hibernate)