Hibernate中的Session的保存删除和更新

对于持久化类,我们可以使用Hibernate提供的操作对该类进行操作。我们之前讨论过,对于数据的操作,Session起到了很大的作用。下面我们来具体的看一下。
1 save()
Session的save()方法可以把该对象的某些属性或者全部属性放入到PreparedStatement中,然后执行语句。当然在这里有涉及到了指定Id方面的具体问题。这里要说明的是这个Id和数据库中的Id唯一表示是不一样的。这里的id是用来表示对象的,不保存在数据库中。当然在使用代理主键的时候并不推荐使用设定id.还要说明的是,在调用该方法时,并不是立即执行SQL语句。而是用到清理缓存的时候才能执行。这里给出的建议是等到对象相对稳定的时候再执行该方法。这里要说明的是,调用save()方法是将对象持久化的一个过程,因此任何对于持久化对象执行该方法都是无意义的。

2 update()
update()方法一般有以下两个方面的用途:把托管的对象转化为持久化对象和更新对象。
在调用这个方法时候,并不立即执行SQL语句,而是等到更新操作累计到一定层度的时候在提交事务的时候一起执行,这个可以说是个有点吧。同时我们知道通过update()方法可以把托管的对象改为持久化的对象,因此,在清理缓存的时候都会对托管的对象进行一次更新操作。如果希望只对改变的托管对象执行update,这是可以在配置文件中加上select-before-update属性,并设值为true.关于是否设立这个属性,还要仔细的考虑一下的,因为它在执行update之前都执行了一次选择语句,以判断用不用更新,这样也会影响性能。

3 saveOrUpdate()
这个方法有save()和update()方法的功能,对于传入的对象,我们首先判断该对象是托管状态还是临时状态,然后调用相应的方法。其实这个方法就是为了解决一个对象它的状态可能处于动态的变化当中的。运用这个方法就能不用太关心对象的状态,而关心业务逻辑了。当然我们自己最好能有一个清晰的认识。

4 delete()
这个方法可以用来删除持久化对象和托管对象。同样执行该方法时候并不执行SQL语句,而是在提交事务时候才执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值