一 如何获得session对象
1、openSession
2、getCurrentSession
二 用openSession获得session对象
1、代码
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
public class SessionTest {
@Test
public void testOpenSession(){
// 创建配置对象
Configuration config = new Configuration().configure();
// 创建服务注册对象
ServiceRegistry serviceRegistery = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
// 创建会话工厂对象
SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistery);
// 创建会话对象
Session session = sessionFactory.openSession();
if(session!=null){
System.out.println("session创建成功!");
}
else{
System.out.println("session创建失败!");
}
}
}
2、运行结果
session创建成功!
三 用getCurrentSession获得session对象
1、代码
<property name="hibernate.current_session_context_class">thread</property>
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;
import org.junit.Test;
public class SessionTest {
@Test
public void testGetCurrentSession(){
// 创建配置对象
Configuration config = new Configuration().configure();
// 创建服务注册对象
ServiceRegistry serviceRegistery = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
// 创建会话工厂对象
SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistery);
// 创建会话对象
Session session = sessionFactory.getCurrentSession();
if(session!=null){
System.out.println("getCurrentSession创建成功!");
}
else{
System.out.println("getCurrentSession创建失败!");
}
}
}
2、运行结果
getCurrentSession创建成功!
相关推荐
在Java的持久化框架Hibernate中,对象的状态管理是其核心功能之一。Hibernate将对象的状态划分为四种:临时状态、持久化状态、游离状态和删除状态。这些状态反映了对象与数据库记录之间的关系,有助于理解Hibernate...
这包括创建SessionFactory,打开Session,执行CRUD操作,最后关闭Session和SessionFactory,确保资源得到正确释放。 通过这些步骤,我们可以看到Hibernate如何简化了数据库操作,将底层SQL语句抽象为面向对象的方法...
通过 HibernateUtil,我们可以得到当前的 Session。下面是 HibernateUtil 的代码示例: ```java package com.bjpowernode.usermgr.util; import org.hibernate.Session; import org.hibernate.SessionFactory; ...
《妙解Hibernate 3.x:叩响面向对象思想之门》是一本深入解析Hibernate框架的专著,旨在帮助读者理解并掌握面向对象编程思想在实际开发中的应用,尤其是在使用Hibernate时如何有效地进行数据持久化。这本书是面向...
23.1.1 Session对象的生命周期与本地线程绑定 23.1.2 Session对象的生命周期与JTA事务绑定 23.2 实现对话 23.2.1 使用游离对象 23.2.2 使用手工清理缓存模式下的Session 23.3 小结 23.4 思考题 第24章...
从上面的代码可以看到,getCurrentSession 方法将获得 Session 对象的工作委托给了 currentSessionContext 对象。currentSessionContext 对象是当前 Session 的上下文环境,它负责管理当前 Session 对象的创建和管理...
(2)SessionFactory:初始化Hibernate,充当数据存储源的代理,创建Session对象。一个SessinFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。如果应用同时访问多个DB,怎需要为每个数据库...
Session 接口是 Hibernate 的核心接口之一,它负责对持久化对象的存取操作。Session 对象是轻量级的,可以被多个线程共享。Session 对象提供了许多方法来操作持久化对象,例如 save、update、delete 等。 4. ...
SessionFactory 是 Hibernate 的核心工厂类,负责创建Session对象。它是线程安全的,一般在应用启动时创建一次,然后在整个应用生命周期中复用。 4. **Session** Session 对象是与数据库交互的主要接口,提供持久...
- Hibernate Core:这是Hibernate的核心模块,包含了对持久化对象的基本支持,如Session接口、SessionFactory、Entity、Query等。 - Hibernate Annotations:提供注解方式来定义实体类和属性,简化了XML配置。 - ...
在Hibernate 3.1.x版本中,这一特性得到了进一步强化,增强了对复杂数据类型和关联关系的支持。 二、实体管理 在Hibernate中,实体是对应数据库表的Java类。通过@Entity注解,我们可以标记一个类为数据库中的表,而...
5. SessionFactory与Session:SessionFactory是线程安全的,用于创建Session对象,而Session是与数据库交互的主要接口,执行CRUD操作。 6. Criteria查询:Hibernate提供了Criteria API,允许开发者无须编写SQL就能...
《深入理解Hibernate源码》 Hibernate,作为Java领域中的一款著名持久化框架,极大地...结合“hibernatedao_080914”、“Jpa_0914”和“hibernate_080914”中的示例和实践,相信你的Hibernate技能将会得到显著提升。
1. **创建 Session**:首先需要创建一个 `SessionFactory` 对象,然后通过该对象打开一个 `Session` 实例。 ```java Configuration config = new Configuration(); config.configure(); SessionFactory sf = ...
得到Session。 5. session.beginTransaction();开启事务。 6. persistent operate; 7. session.getTransaction().commit();提交事务 8. 关闭Session; 9. 关闭SessionFactory; Hibernate优点 Hibernate的优点包括:...
这些映射策略使得复杂的关联关系能够在Hibernate中得到清晰的表示。 #### 延迟加载(LazyInitialization) 延迟加载是一种优化技术,允许Hibernate在真正需要的时候才加载关联的对象,从而减少了不必要的数据库访问...
23.1.1 Session对象的生命周期与本地线程绑定 23.1.2 Session对象的生命周期与JTA事务绑定 23.2 实现对话 23.2.1 使用游离对象 23.2.2 使用手工清理缓存模式下的Session 23.3 小结 23.4 思考题 第24章...
23.1.1 Session对象的生命周期与本地线程绑定 23.1.2 Session对象的生命周期与JTA事务绑定 23.2 实现对话 23.2.1 使用游离对象 23.2.2 使用手工清理缓存模式下的Session 23.3 小结 23.4 思考题 第24章...
Hibernate作为Java世界中最流行的持久层框架之一,在对象关系映射(ORM)领域扮演着极其重要的角色。它不仅简化了数据库操作的复杂性,还为开发者提供了一种更为高效、简洁的方式来管理应用程序中的数据持久化问题。...