迷失北京

BlogJava 联系 聚合 管理
  60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

伟大的信息管理与信息系统专业,万恶的信息管理与信息系统专业。说这句话我是有根据的:因为这个专业雄心勃勃的想把自己的子弟培养成全面发展的人才但是结果则不然。两方面的原因:一部分在学生,但是一部分在这个专业。让我极其郁闷的就是这个学期我们开设了《财政学》这门课程,天大的噩耗呀(对于我来说,说这种话不到有任何目的性)。索性这门课我立志就没有想学,在老师甜美的声音的陪伴下,我又熟悉了一遍hibernate,废话少说谈一下这一下午的收获吧。

1. hibernate的unsaved-value属性

      unsaved-value是关系到Hibernate对象save or update的配置属性,它的可选值有三个:null,none,any。

      a) null的意思是:如果对象的主键是null的话,则对对象采用save()方法,如果对象的主键不是null的话,则对对象采用update()的方法。

      b) none的意思是:不论哪种情况对象的主键都不可能为none值,所以这种情况hibernate采取的方法总是save()。

      c) any的意思是:any任何值,当然对象的主键不会取任何值之外的值,所以这种情况hibernate采取的方法总是update()。

2. 由此我想到了hibernate的三种状态的对象:

      a) transient---水态的对象:刚刚被创建,没有持久化的对象,自然不会与数据库中的任何主键对应。

      b) persistent---持久化的对象。对象被创建以后经过了持久化,数据库中有相应的主键与之对应。但是还有一个要注意的就是这种对象的状态保持在session未关闭之前。这是一个和下面的对象状态容易混的地方。

      c) detached---托管的对象。这里的托管是脱离的session对这个对象的管理,这种对象的状态处在session已经关闭,但是java垃圾回收器还未将此对象回收。

hibernate三种对象状态我的理解是这样的,其实我也是懵懵懂懂。希望高人指点啦....

3. hibernate主键的选择:hibernate的主键尽量使用不与业务相关的字段,hibernate主键类型的选择也应给尽量使用对象类型(Integer,String....),而不使用基础类型(int,long....)。

4. hibernate的缓存机制:

      一级缓存:一级缓存是session级别的缓存,这种缓存不需要配置,是hibernate自动提供的。

      二级缓存:二级缓存是SessionFactory级别的全局缓存,这种缓存是需要配置的。缓存机制对于一个系统来说是非常重要的,这涉及到了一个系统的新能问题。缓存技术也是一门程序员必须掌握的技术,如果缓存处理的好,那么会大大提高系统的性能,相反会降低系统的性能。(水平有限)

其实今天下午上课还看了好多东西呢,但是都是些配置的东西。因为自己的水平不够不敢多说了,hibernate不是用来使用的东西,而是用来领悟的东西!!努力学习吧....

posted on 2011-03-01 18:57 王康 阅读(64) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: