`

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语句,而是在提交事务时候才执行。
分享到:
评论

相关推荐

    Hibernate-nosession

    Session是Hibernate中的核心接口,它充当了应用程序和数据库之间的桥梁,负责对象的持久化操作,如保存、更新、删除和查询等。Session通常在一个事务中打开并在事务结束时关闭,以确保数据的一致性和完整性。 然而...

    hibernate和session学习

    在上述代码中,我们首先通过`SessionFactory`获取`Session`实例,然后开启事务,接着创建一个新的`User`对象并保存到数据库,最后提交事务并关闭`Session`。 在实际应用中,我们通常会将`SessionFactory`和`Session...

    重写hibernate的session简单增删改查

    Hibernate的Session是与数据库交互的主要接口,它负责对象的持久化操作,如保存、更新、删除和查询。Session提供了事务管理和缓存管理的功能,确保了数据的一致性和性能。 1. 增加(Create) 在Hibernate中,增加...

    Hibernate(session管理)

    它负责保存、检索和更新Java对象,同时处理事务和缓存机制。Session对象具有短暂性,通常在一次业务操作或一个用户会话中创建并使用,然后关闭,以确保资源的有效利用。 1. **Session的创建**:在Hibernate中,我们...

    hibernate session生命周期示例

    Session对象负责管理实体对象的状态,包括保存、更新、删除和检索数据。它的生命周期主要包括以下几个阶段: 1. **创建Session**: 当我们调用`SessionFactory.openSession()`方法时,一个新的Session实例就会被...

    Hibernate的Session的javadoc

    Hibernate的Session接口是Java应用程序与Hibernate之间主要的运行时交互接口,它提供了对持久化对象的创建、读取和删除操作。Session的概念是基于对象的状态管理和数据库事务的,它的生命周期通常与一个物理事务绑定...

    hibernate--3.Hibernate数据持久化(通过 Session 操纵对象)

    Session是Hibernate的核心接口之一,它负责对象的持久化操作,比如保存、更新、删除和检索对象。Session对象就像一个临时的工作区域,用于在应用程序和数据库之间传递信息。当我们在Session上进行操作时,这些操作...

    hibernate many-to-many级联保存,级联更新,级联删除

    例如,如果我们希望在Student与Course的Many-to-Many关系中启用级联保存和更新,可以在映射文件中这样配置: ```xml <!-- 在Student.hbm.xml --> <!-- 在Course.hbm.xml --> ``` 四、级联保存 假设我们有一个...

    实现自己的Hibernate框架之Session 方法实现

    Session的方法包括保存、更新、删除、加载、查询等,这些都是ORM框架的基础功能。 1. **保存(save())**:当新创建一个对象并希望将其持久化到数据库时,我们可以调用Session的save()方法。这个过程通常涉及到为...

    对Hibernate Session做一个简单的包装

    `Session`是Hibernate的核心组件,它负责对象的持久化操作,如保存、更新、查询等。 `Session`接口提供了多种方法来与数据库交互,如`save()`, `update()`, `delete()`, `get()`, `load()`以及`createQuery()`等。...

    hibernate02:session对象、hql查询、在线查询也叫对象查询、离线查询

    `Session`提供了在数据库中保存、更新和删除对象的方法,同时也负责加载或检索对象。它具有事务管理功能,并且实现了对数据库的脏检查(dirty-checking)和缓存机制。创建`Session`对象时通常通过`SessionFactory`,...

    Hibernate_11session

    比如,`save()`方法用于保存一个新的对象到数据库,`update()`用于更新已存在的对象,而`delete()`则是删除对象。 三、Session的事务管理 在Hibernate中,Session与数据库交互时通常是在事务中进行的。你可以使用...

    HibernateSession , Transaction 研究

    本文将深入研究Hibernate中的`Session`和`Transaction`,这两个概念是理解Hibernate工作原理的关键。 首先,让我们了解`Session`。在Hibernate中,`Session`充当了应用程序与数据库之间的桥梁,它是持久化操作的...

    hibernate session.doc

    除了`delete()`方法,`Session`还提供了其他操作,如`save()`、`saveOrUpdate()`和`update()`,它们分别用于保存新对象、根据现有状态决定保存或更新对象以及更新对象的现有状态。另外,`Session`还有一系列方法用于...

    Hibernate下数据批量处理解决方案

    对于更新和删除操作,可以使用`scroll()`方法,这在Hibernate 2.1.6或更高版本中是支持的。`scroll()`方法返回一个`ScrollableResults`对象,允许我们以游标方式处理结果集,这在处理大量数据时非常有效。同样,我们...

    JavaEE技术-自主学习.zip_hibernate_hibernate session _javaee映射.xml

    Session提供了保存、删除、更新和查询对象的方法。例如: ```java SessionFactory sessionFactory = Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession(); // ...

    Spring与Hibernate集成中的session

    `Session`是Hibernate的核心概念,它是与数据库交互的主要接口,用于保存、更新和删除持久化对象。在Spring中,我们可以使用`SessionFactory`来创建`Session`实例,`SessionFactory`是对整个数据库会话的配置和管理...

    JSF+hibernate实现批量删除

    本篇文章将详细探讨如何利用JSF与Hibernate相结合来实现批量删除功能,以及在CRUD(创建、读取、更新和删除)操作中的应用。 首先,我们需要理解JSF的工作原理。JSF是一个基于组件的MVC(Model-View-Controller)...

    传智播客hibernate教程_保存多对一关联关系的更进一步分析

    在Hibernate中,可以使用Session的`beginTransaction()`、`commit()`和`rollback()`方法进行事务控制。 5. **优化性能**:在处理大量关联数据时,应考虑使用JOIN查询或子查询优化,避免N+1查询问题。此外,合理设置...

    hibernate中文参考文档pdf

    Session是工作单元,用于执行数据库操作,如保存、更新和删除对象。 4. **Transaction管理**:讲解如何在Hibernate中处理事务,包括手动和自动提交事务,以及回滚和隔离级别。 5. **Querying数据**:详述了HQL...

Global site tag (gtag.js) - Google Analytics