博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hibernate读书笔记
阅读量:4641 次
发布时间:2019-06-09

本文共 1320 字,大约阅读时间需要 4 分钟。

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

转载于:https://www.cnblogs.com/focusj/archive/2011/03/01/2057623.html

你可能感兴趣的文章
还是畅通工程(hdu1233)并查集应用
查看>>
导入.sql文件入数据库
查看>>
I/O模型
查看>>
EMQ --集成搭建
查看>>
对poi-Excel导入的浅层理解
查看>>
checkbox修改功能保存功能绑定
查看>>
网站推荐:11个相似图片搜索网站(以图找图)
查看>>
Html5 Canvas初探学习笔记(13) -图片变换
查看>>
NOI 2016 循环之美 (莫比乌斯反演+杜教筛)
查看>>
web.xml is missing and <failOnMissingWebXml> is set to true
查看>>
jersey 过滤器名称绑定的问题 NameBinding Provider
查看>>
cookie-session理解
查看>>
Spring源码窥探之:BeanPostProcessor
查看>>
Creating a Fragment 创建一个片段
查看>>
获取手机中的图片,然后上传
查看>>
sqlserver 分页查询总结
查看>>
多台centos服务器同步更新代码文件
查看>>
关于用户管理的思考
查看>>
小试牛刀【龙哥翻译】
查看>>
利用python重启路由器
查看>>