Hibernate1

来源:互联网 发布:淘宝买烟花 编辑:程序博客网 时间:2024/05/21 08:45

O/R Mapping

  1. 对象-关系映射是一门非常实用的工程技术,它实现了java应用中的对象关系数据库中的表的自动的持久化,使用元数据描述对象与数据库间的映射
  2. 优点:提高生产率
  3. 可维护性
  4. 更好性能

Hibernate

  1. 特点:开放源代码的对象/关系映射持久层框架
  2. 事务处理,生命周期不依赖于J2EE容器
  3. 解决数据库的方言问题
  4. hibernate只需要操作对象就可以完成数据库的增删改查操作,使用hibernate更面向对象
  5. 轻量级,无侵入性,移植性好
  6. 缺点:不适用范围-
  7. 批量对对象进行操作时
  8. 使用数据库特定映射
  9. 表间关系很复杂时会造成性能问题

主键生成策略

  1. increment 自动增长,不能用于集群
  2. identity 自动增长
  3. sequence oracle专用


    s_cust_id

  4. uuid 生成速度快,但查找相对较慢
  5. native 根据方言描述,决定采用identify或者sequence
  6. assigned 手动分配主键,当generator没有设置时,采用这种方式
  7. select 使用触发器分配主键
  8. foreign 使用另外一个相关联的对象的标识符

对象状态

  1. 瞬时状态 transeient: 当生成po对象时产生,数据库中还没有相关记录,没有session对其进行管理
  2. 持久状态 persistant:当session调用saveorupdate()时,数据库中有与之相对应的记录,有session进行管理,当po对象的值发生变化时,session对象让数据库记录与之同步
  3. 游离状态:当session事务提交时,数据库中有与之相对应的记录,从session一级缓存中清除,session不再进行管理

get和load的区别

  1. get为立即加载,调用get方法,会马上执行sql语句,将结果查询出来
  2. load为延迟加载,调用load方法时,不会马上查询结果,而是当查询出来的对象在使用时,才发出sql语句的查询结果;
  3. 当查询的主键不存在时,get方法返回空,load方法会抛出对象查找不到异常;
  4. 对延迟加载而言,一旦查询的对象不适用,不会真正的去查询,这时如果session关闭,再使用查询对象,那么会抛出赖加载异常 org.hibernate.LazyInitializationException
0 0
原创粉丝点击