`
vivian123an
  • 浏览: 2245 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hiberbate session 详解

 
阅读更多
org.hibernate
Interface Session
All Superinterfaces:
Serializable
All Known Subinterfaces:
EventSource, Session
All Known Implementing Classes:
SessionImpl

--------------------------------------------------------------------------------

public interface Session
extends Serializable
The main runtime interface between a Java application and Hibernate. This is the central API class abstracting the notion of a persistence service.

The lifecycle of a Session is bounded by the beginning and end of a logical transaction. (Long transactions might span several database transactions.)

The main function of the Session is to offer create, read and delete operations for instances of mapped entity classes. Instances may exist in one of three states:

transient: never persistent, not associated with any Session
persistent: associated with a unique Session
detached: previously persistent, not associated with any Session

Transient instances may be made persistent by calling save(), persist() or saveOrUpdate(). Persistent instances may be made transient by calling delete(). Any instance returned by a get() or load() method is persistent. Detached instances may be made persistent by calling update(), saveOrUpdate(), lock() or replicate(). The state of a transient or detached instance may also be made persistent as a new persistent instance by calling merge().

save() and persist() result in an SQL INSERT, delete() in an SQL DELETE and update() or merge() in an SQL UPDATE. Changes to persistent instances are detected at flush time and also result in an SQL UPDATE. saveOrUpdate() and replicate() result in either an INSERT or an UPDATE.

It is not intended that implementors be threadsafe. Instead each thread/transaction should obtain its own instance from a SessionFactory.

A Session instance is serializable if its persistent classes are serializable.

A typical transaction should use the following idiom:

Session sess = factory.openSession();
Transaction tx;
try {
     tx = sess.beginTransaction();
     //do some work
     ...
     tx.commit();
}
catch (Exception e) {
     if (tx!=null) tx.rollback();
     throw e;
}
finally {
     sess.close();
}

If the Session throws an exception, the transaction must be rolled back and the session discarded. The internal state of the Session might not be consistent with the database after the exception occurs. [/size][size=medium]
分享到:
评论

相关推荐

    Hiberbate参考手册

    3. **会话(Session)**: 会话是 Hibernate 提供的与数据库交互的接口,用于执行 CRUD(创建、读取、更新、删除)操作。它是临时性的,一次事务完成后会话就会关闭。 4. **对象状态(Object State)**: Hibernate ...

    hiberbate4 学习笔记

    个人认为还算挺详细的一hibernate4学习笔记,适合入门

    Hiberbate增删改查(分页)的例子简单的

    Session session = sessionFactory.openSession(); // Create MyEntity entity = new MyEntity(); entity.setName("测试"); session.save(entity); // Read MyEntity readEntity = (MyEntity) session.get...

    JSp+Hiberbate+MySql写的Blog

    JSp+Hiberbate+MySql写的Blog,其中还有不少WEB2.0的东西,我看了好多遍。自己依照程序做了不少功能。 感觉进步很快。特别是Hiberbate对数据库的操作,很适合初学都理解MVC模式。

    Hiberbate-jar包

    jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包jar包

    Hiberbate hql总结

    Query query = session.createQuery(hql); List<Users> users = query.list(); ``` 这将返回一个包含`Users`对象的列表,每个对象对应数据库中的一行记录。 2. **查询单个字段** 如果只需要获取对象中的某个...

    Eclipse Hiberbate

    利用Eclipse开发Hibernate应用程序

    Hiberbate练习

    3. **SessionFactory与Session**:SessionFactory是线程安全的,负责创建Session实例。Session是与数据库交互的主要接口,用于执行CRUD操作。例如: ```java SessionFactory sessionFactory = HibernateUtil....

    hiberbate学习资料归档

    Session提供了增删改查(CRUD)操作,如`save()`, `update()`, `delete()`, `get()` 和 `load()` 方法。 **5. 查询语言HQL** HQL是Hibernate的查询语言,类似SQL但面向对象,允许开发者以类和对象的方式书写查询。...

    Hiberbate 3延迟加载(Lazy)介绍

    例如,当你调用`session.load()`方法获取一个实体时,实际返回的是一个代理对象,这个代理对象在第一次访问其属性时才会触发数据库查询。 #### 三、配置延迟加载 在Hibernbate配置文件(如`hibernate.cfg.xml`或`....

    hiberbate + struts2 +spring 集成实例

    **知识点详解**: - **依赖注入**:Spring通过DI机制将对象间的依赖关系解耦,使得组件更易于测试和维护。 - **AOP**:Spring的AOP支持切面编程,可以实现如事务管理、日志记录等功能。 - **拦截器**:Struts2的...

    电子商务Ajax+Struts+Hiberbate网上书店系统

    【标题】:“电子商务Ajax+Struts+Hibernate网上书店系统” ... 这个网上书店系统是构建在J2EE(Java 2 Enterprise Edition)平台上,采用了一系列先进的技术和框架来提供高效、稳定的电子商务服务。...

    springSpringMvcHiberbateEasyWorkFramedemo

    DAO层则利用Hibernate提供的Session接口与数据库进行交互,通过Session的save、update、delete和load等方法,实现对象的持久化操作。 为了使项目能够正常运行,还需要确保所有依赖的jar包已经包含在类路径下,这...

    使用hibernate做的一个登录的小实例,代码大部分都是自动生成

    【知识点详解】: 1. **Hibernate核心组件**: - **SessionFactory**:是线程安全的,负责创建Session,它是Hibernate的顶级对象,通常在应用启动时创建并保持整个生命周期。 - **Session**:代表数据库会话,...

    hiberbate基础入门

    hibernate的基础教程,帮你更快掌握持久化层的技术。

    Struts2.5.22+Spring5.3.10+Hiberbate5.6.15整合练习源码包

    Struts2.5.22、Spring5.3.10和Hibernate5.6.15是Java开发中常用的三个框架,它们分别负责MVC模式中的Action层、Service层和持久化层。这个源码包提供了在IDEA环境下,利用Maven构建工具进行SSH(Struts2、Spring、...

    Web开发中spring+hiberbate+struts2框架开发base类和框架配置

    这个是上一个文件也就是hibernate+spring+struts框架的中的java的一些base代码,基本的base类,如通过id找对象,通过id查找集合等等。jar就是上一个hibernate+spring+struts2框架jar包文件,有需要可以自行下载,很...

    Hibernate关联关系

    ### Hibernate关联关系详解 在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,为开发者提供了方便地操作数据库的方式。通过将Java对象与数据库表进行映射,Hibernate大大简化了数据持久化层的...

    一个简单的基于sring+hiberbate+struts2的人员管理系统,myeclipse直接加入就可以用

    这是一个基于Spring、Hibernate和Struts2的简单人员管理系统,适合初学者或开发者快速搭建和学习。这个系统在MyEclipse环境中可以直接导入并运行,无需额外配置,方便快捷。以下是关于这些技术栈及其在该系统中应用...

Global site tag (gtag.js) - Google Analytics