Hibernate核心API

一、session

session可以理解为操作数据库的对象
session的特点:线程不安全

1、把对象保存在关系型数据库中需要调用session的各种方法:

如:save() 、update()、delete()、createQuery()等

2、如何获得session对象?
  1. openSession
  2. getCurrentSession
    使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置:
如果是本地事物(jdbc事物)
  thread
 如果是全局事物(jta事物)
  jta
3、openSession和getCurrentSession的区别:
  1. getCurrentSession在事物提交或者回滚之后会自动关闭,而openSession需要手动关闭。如果使用openSession而没有手动关闭,多次之后会导致连接池溢出。
  2. openSession每次创建新的session对象,getCurrentSession使用现有的session对象。

二、transaction

Hibernate对数据的操作都是封装在事物中,并且默认是非自动提交的方式。所以用session保存对象时,如果不开启事物和提交事物,对象并不会真正保存在数据库里。

你可能感兴趣的:(Hibernate核心API)