zoukankan      html  css  js  c++  java
  • hibernate入门四之session学习

    hibernate的执行流程

    session简介

    • 不建议使用jdbc的connection操作数据库,而是通过使用session操作数据库
    • session可以理解为操作数据库的对象
    • session与connection,是多对一的关系,每个session都有一个与之对应的connection,一个connection不同时刻可以供多个session使用。

    transaction简介

    • hibernate对数据的操作都是封装在事务当中,并且默认是非自动提交的方式。所以session保存对象时,如果不开启事务,并且手工提交事务,对象并不会真正保存在数据库中。
    • 如果想用hibernate像jdbc那样自动提交事务,必须调用session对象的doWork()方法,获得jdbc的connection后,设置其为自动提交事务模式(注意:通常不建议这么做)

    session详解:

    如何获得session

    • openSession
    • getCurrentSession

    如果使用第二种方式,需要在hibernate.cfg.xml中配置,如下图

    openSession与getCurrentSession的区别:

    • getCurrentSession在事务提交或回滚之后会自动关闭,而openSession需要手动关闭。如果使用openSession没有关闭,多次之后会导致连接池溢出。
    • openSession每次创建新的Session对象,而getCurrentSession使用现有的对象
  • 相关阅读:
    JSP第七次作业
    JSP第六次作业
    Jsp第五次作业
    软件测试第二次作业
    Jsp第四次作业2
    Jsp第四次作业1
    软件测试第一次作业
    JSP第三次作业
    JSP第二次作业
    第七次作业
  • 原文地址:https://www.cnblogs.com/lindaiyu/p/10995431.html
Copyright © 2011-2022 走看看