Hibernate 4 获取session对象的变化

转载 2015年11月19日 13:15:14

Hibernate用来获取配置文件的类是Configuration,若用Annotation的话就是AnnotationConfiguration类。

例:Configuration config = new Configuration();

config.configure("hibernate.cfg.xml");//configure()方法取得。

//或者config.configure();不用加参数,因为只有需要一个//hibernate.cfg.xmlsrc路径下。Hibernate会自动匹配

取得配置文件后:需要一个Session对象来操作数据库的存取。Session对象是有SessionFactory的对象来产生的。

4.0版本之前sessionFactory由取得配置文件的对象config.BuildSessionFactory();产生。

SessionFactory sessionFactory =config.buildSessionFactory();

再由sessionFactory.getCurrentSession();方法产生session

Session session = sessionFactory.getCurrentSession();

有了session对象之后就可以对数据库进行操作了。但hibernate的所有操作都是建立在事务之上的。所以session操作之前要先打开一个事务:

session.beginTransaction();

同理操作完之后要提交事务:

session.getTransaction().commit();

若出错。可回滚:

session.getTransaction().roolback();(这两句可放在tyr{……}catch{……}语句里面)

另外还要关闭session对象:

session.close();

升级到4.0之后取得session的方法有所改变,hibernate增加了一个注册机ServiceRegistryBuilder 类。要先生成一个注册机对象,然后所有的生成SessionFactory的对象要象注册机注册一下再用。生成方法还是config.buildSessionFactory()方法,不过加了个注册机的参数。config.buildSessionFactory(ServiceRegistry  registry);

具体方法如下:

ServiceRegistry resgistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();

SessionFactory  factory = config.buildSessionFactory(resgistry);

Session session = factory.openSession();

相关文章推荐

Spring4+Hibernate4整合,关于获取SessionFactory

Spring4+Hibernate4整合,修改Dao组件获取session

Hibernate入门(四)之hibernate中session的创建方式

为什么要专注于session的创建方式在有些场景必须关注session的创建,比如说在银行转账操作的时候,两个账户转账必须在同一个session中 如上面所示,账户1钱没了,账户2钱却没有到,原...

Hibernate、Hibernate4获取SessionFactory对象方法的变化

Hibernate、Hibernate4获取SessionFactory对象方法的变化 Hibernate用来获取配置文件的类是Configuration,若用Annotation的话就是Annot...

深入学习Hibernate4_04通过 Session 操纵对象

Session是什么? Session 接口是 Hibernate 向应用程序提供的操纵数据库的最主要的接口, 它提供了基本的保存, 更新, 删除和加载 Java 对象的方法.Session 具...

Hibernate4-2 通过Session操纵对象

Session接口是Hibernate向应用程序提供的操纵数据库的最主要接口,其提供有基本的保存、更新、删除和加载Java对象的方法。Session具有一个缓存,位于缓存中的对象称为持久化对象,其与数...

ThreadLocal管理和获取Hibernate的Session对象

前几天在csdn论坛里面,经常有人问到,如果不用spring,单用hibernate如何来解决延迟加载的问题. 无论是立即加载还是延迟加载必须要连接数据库的,而在java中连接数据库是依赖jav...
  • he90227
  • he90227
  • 2014年09月11日 13:59
  • 859

hibernate获取session连接对象

所有的session连接对象都是由SessionFactory生产的。 SessiinFactory的创建有3种方式。 1.hibernate创建HibernateUtil工具类,用于初始...

Spring3+Hibernate4注解式事务中无法获取Session的问题

Hibernate3以后,建议使用SessionFactory.getCurrentSession()的方式来创建Session并绑定到ThreadLocalSessionContext. 在集成S...

Hibernate 4 变化

Hibernate4的改动较大只有spring3.1以上版本能够支持,Spring3.1取消了HibernateTemplate,因为Hibernate4的事务管理已经很好了,不用Spring再扩展了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate 4 获取session对象的变化
举报原因:
原因补充:

(最多只允许输入30个字)