如何理解hibernate中的持久化问题?

希望讲的详细一点。... 希望讲的详细一点。 展开
 我来答
zhaoxin199203
推荐于2016-11-02 · TA获得超过312个赞
知道答主
回答量:86
采纳率:0%
帮助的人:58.3万
展开全部
所谓的持久是站在业务模型的角度说的。按照面向对象的分析设计方式,我们先根据业务的形状画出一个对象模型,然后写代码,然后对象之间互相调用,系统就运行起来了。面向对象很牛b,但是有一个巨大的问题,就是所有的对象都是在计算机的内存里的,一旦机器关掉,一切都消失了。于是需要有这样的功能:把内存中的对象保存到数据库里去,需要的时候再从数据库里拿出来。

最简单的方式就是:在对象里面写上sql语句,把对象属性insert/update进去,需要的时候从数据库里面select出数据来,再set到对象属性上。这是最土的办法。这样一来,对象就持久了。

比较炫一点的办法,就是定义一个表,在这个表里记录对象属性和数据库字段的一个对应关系,当我们需要一个对象的时候,就根据这个表自动把对象属性的值赋上,修改后的属性还能自动update回到数据库里去。有了这个功能,对象的使用者就感觉象没有数据库一样,好像这些对象本来就是放在内存中的。这就是orm。

持久化就是把缓存中的东西放到数据库中使之持久.对于需要持久化的对象,它的生命周期分为三个状态:临时状态,持久化状态,游离状态.
临时状态:刚刚用new语句创建,没有被持久化,不处于session的缓存中.处于临时状态的java对象被称为临时对象.
持久化状态:已经被持久化,加入到session的缓存中.处于持久化的java对象被称为持久化对象.
游离状态:已经被持久化,但不处于session的缓存中,处于游离状态的java对象被成为游离对象.
持久化对象的特征:
. 位于一个session事例的缓存中,可以说持久化对象总是被一个session事例关联
. 持久化对象和数据库中的相关记录对应
. Session在清理缓存时,会根据持久化对象的属性变化来同步更新数据库
. Session的save()方法把临时状态变为持久化状态.
. Session的update() ,saveOrUpdate()和lock()方法使游离状态变为持久化状态.
Misswang1988
2012-06-21 · TA获得超过243个赞
知道答主
回答量:244
采纳率:50%
帮助的人:191万
展开全部
说白了 就是把对象持久化永久存储在数据库中。
hibernate封装了底层JDBC技术,所以在持久化对象的时候可以直接使用
getHibernateTemplate().save(Entity entity) 来insert插入存储对象
getHibernateTemplate().update(Entity entity) 来update更新对象
等等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玖玖久999
2012-06-21 · TA获得超过279个赞
知道小有建树答主
回答量:269
采纳率:100%
帮助的人:198万
展开全部
持久化就是一个把数据存储到数据库的过程. hibernate是冬眠的意思,把数据存到数据库里,保存起来是不是和冬眠很像呢。 还有就是持久层的概念,持久层就是持久化抽象处理过程所在的层次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式