美文网首页
Hibernate核心API

Hibernate核心API

作者: Mango_lxh | 来源:发表于2018-09-09 01:16 被阅读0次

    一、session

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

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

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

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

    二、transaction

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

    相关文章

      网友评论

          本文标题:Hibernate核心API

          本文链接:https://www.haomeiwen.com/subject/qyhrgftx.html