Hibernate中session的用法

Java应用程序与Hibernate之间的主要运行时接口。它是抽象了持久化服务概念的核心抽象API类。  Session的生命周期绑定在一个物理的事务(tansaction)上面。(长的事务可能跨越多个数据库事物。) Session的主要功能是提供对映射的实体类实例的创建,读取和删除操作。 实例可能以下面三种状态存在: 自由状态(transient): 不曾进行持久化,未与任何Session相关联 持久化状态(persistent): 仅与一个Session相关联 游离状态(detached): 已经进行过持久化,        但当前未与任何Session相关联 游离状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。 持久化实例可以通过调用 delete()变成游离状态。 通过get()或load()方法得到的实例都是持久化状态的。 游离状态的实例可以通过调用 update()、0saveOrUpdate()、lock()或者replicate()进行持久化。 游离或者自由状态下的实例可以通过调用merge()方法成为一个新的持久化实例。 save()和persist()将会引发SQL的INSERT,delete()会引发SQLDELETE,而update()或merge()会引发SQLUPDATE。 对持久化(persistent)实例的修改在刷新提交的时候会被检测到,它也会引起SQLUPDATE。 saveOrUpdate()或者replicate()会引发SQLINSERT或者UPDATE。   以下是通过Hibernate3.0执行批量更新的程序代码:
Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

String hqlUpdate = "update Customer set name = :newName where name = :oldName";

int updatedEntities = s.createQuery( hqlUpdate )

.setString( "newName", newName )

.setString( "oldName", oldName )

.executeUpdate();

tx.commit();

session.close();

以下是通过Hibernate3.0执行批量删除的程序代码:

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

String hqlDelete = "delete Customer where name = :oldName";

int deletedEntities = s.createQuery( hqlDelete )

.setString( "oldName", oldName )

.executeUpdate();

tx.commit();

session.close();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值