Hibernate中的Session对象

简介: Hibernate中的Session对象

Hibernate中的Session


大家在看hibernate视频的时候一定都发现了,每次要操作数据库,总是要新建一个session对象,Hibernate在对资料库进行操作之前,必须先取得Session实例,相当于JDBC在对资料库操作之前,必须先取得Connection实例, Session是Hibernate操作的基础。


Session三种状态


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。


Session使用方法


 Session session = sessionFactory.openSession();                                   
      Student student = (Student) session.get(Student.class, 1);                       
      // Student student = (Student) session.get("com.entity.Student", 1);     
      System.out.println(student);                                                      
      session.close();  
目录
相关文章
|
3月前
|
SQL Java 数据库连接
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。
Hibernate 是一款开源 ORM(对象关系映射)框架,封装了 JDBC,允许以面向对象的方式操作数据库,简化了数据访问层的开发。通过映射机制,它可以自动处理对象与数据库表之间的转换,支持主流数据库,提高了代码的可移植性和可维护性。其核心接口包括 SessionFactory、Session 和 Transaction 等,通过它们可以执行数据库的 CRUD 操作。配置方面,需在项目中引入 Hibernate 及数据库驱动依赖,并创建 `hibernate.cfg.xml` 配置文件来设置数据库连接和 Hibernate 行为参数。
47 1
|
3月前
|
Java 数据库连接 数据库
|
3月前
|
Java 数据库连接 数据库
|
3月前
|
缓存 安全 Java
|
3月前
|
缓存 安全 Java
Hibernate 中的 Session 是线程安全的吗?
【8月更文挑战第21天】
43 0
|
3月前
|
缓存 安全 Java
Hibernate 中的 Session 是什么?
【8月更文挑战第21天】
42 0
|
5月前
|
缓存 Java 数据库连接
解析Hibernate与JPA:Java对象的数据库化之旅
【6月更文挑战第25天】在Java企业开发中,Hibernate和JPA提供优雅的数据持久化方案。Hibernate是JPA规范的强大ORM实现,简化对象与数据库映射。配置环境后,通过@Entity注解定义实体类映射表,如`User`类映射"users"表。利用JPA的EntityManager执行查询和更新,如JPQL查询及对象更新。事务管理和性能优化是关键,确保数据完整性和应用性能。本文揭示了Hibernate与JPA的最佳实践,助开发者从容应对数据持久化。
46 0
|
5月前
|
存储 Java 数据库连接
深入探索Hibernate与JPA:Java对象与数据库表的桥梁
【6月更文挑战第25天】Java ORM如Hibernate和JPA简化了数据库交互。在电商系统案例中,JPA注解如`@Entity`、`@Table`、`@Id`定义了对象-表映射。Hibernate利用这些定义实现持久化,如`Session.save()`保存用户对象至数据库,降低了复杂性并提升了开发效率。
50 0
|
6月前
|
SQL 缓存 Java
Hibernate - Session管理与批量数据处理详解
Hibernate - Session管理与批量数据处理详解
85 0