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]
分享到:
相关推荐
3. **会话(Session)**: 会话是 Hibernate 提供的与数据库交互的接口,用于执行 CRUD(创建、读取、更新、删除)操作。它是临时性的,一次事务完成后会话就会关闭。 4. **对象状态(Object State)**: Hibernate ...
个人认为还算挺详细的一hibernate4学习笔记,适合入门
Session session = sessionFactory.openSession(); // Create MyEntity entity = new MyEntity(); entity.setName("测试"); session.save(entity); // Read MyEntity readEntity = (MyEntity) session.get...
JSp+Hiberbate+MySql写的Blog,其中还有不少WEB2.0的东西,我看了好多遍。自己依照程序做了不少功能。 感觉进步很快。特别是Hiberbate对数据库的操作,很适合初学都理解MVC模式。
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包
Query query = session.createQuery(hql); List<Users> users = query.list(); ``` 这将返回一个包含`Users`对象的列表,每个对象对应数据库中的一行记录。 2. **查询单个字段** 如果只需要获取对象中的某个...
利用Eclipse开发Hibernate应用程序
3. **SessionFactory与Session**:SessionFactory是线程安全的,负责创建Session实例。Session是与数据库交互的主要接口,用于执行CRUD操作。例如: ```java SessionFactory sessionFactory = HibernateUtil....
Session提供了增删改查(CRUD)操作,如`save()`, `update()`, `delete()`, `get()` 和 `load()` 方法。 **5. 查询语言HQL** HQL是Hibernate的查询语言,类似SQL但面向对象,允许开发者以类和对象的方式书写查询。...
例如,当你调用`session.load()`方法获取一个实体时,实际返回的是一个代理对象,这个代理对象在第一次访问其属性时才会触发数据库查询。 #### 三、配置延迟加载 在Hibernbate配置文件(如`hibernate.cfg.xml`或`....
**知识点详解**: - **依赖注入**:Spring通过DI机制将对象间的依赖关系解耦,使得组件更易于测试和维护。 - **AOP**:Spring的AOP支持切面编程,可以实现如事务管理、日志记录等功能。 - **拦截器**:Struts2的...
【标题】:“电子商务Ajax+Struts+Hibernate网上书店系统” ... 这个网上书店系统是构建在J2EE(Java 2 Enterprise Edition)平台上,采用了一系列先进的技术和框架来提供高效、稳定的电子商务服务。...
DAO层则利用Hibernate提供的Session接口与数据库进行交互,通过Session的save、update、delete和load等方法,实现对象的持久化操作。 为了使项目能够正常运行,还需要确保所有依赖的jar包已经包含在类路径下,这...
【知识点详解】: 1. **Hibernate核心组件**: - **SessionFactory**:是线程安全的,负责创建Session,它是Hibernate的顶级对象,通常在应用启动时创建并保持整个生命周期。 - **Session**:代表数据库会话,...
hibernate的基础教程,帮你更快掌握持久化层的技术。
Struts2.5.22、Spring5.3.10和Hibernate5.6.15是Java开发中常用的三个框架,它们分别负责MVC模式中的Action层、Service层和持久化层。这个源码包提供了在IDEA环境下,利用Maven构建工具进行SSH(Struts2、Spring、...
这个是上一个文件也就是hibernate+spring+struts框架的中的java的一些base代码,基本的base类,如通过id找对象,通过id查找集合等等。jar就是上一个hibernate+spring+struts2框架jar包文件,有需要可以自行下载,很...
### Hibernate关联关系详解 在Java开发领域中,Hibernate作为一个强大的对象关系映射(ORM)框架,为开发者提供了方便地操作数据库的方式。通过将Java对象与数据库表进行映射,Hibernate大大简化了数据持久化层的...
这是一个基于Spring、Hibernate和Struts2的简单人员管理系统,适合初学者或开发者快速搭建和学习。这个系统在MyEclipse环境中可以直接导入并运行,无需额外配置,方便快捷。以下是关于这些技术栈及其在该系统中应用...