面试考这个比较少

a) Session session = sessionFactory.openSession();    永远都是打开新的
记得要 close

b)  Session session = sessionFactory.getCurrentSession();

1.先找原来是否有存在,有就用 没有就开一个(在未提交之前永远都是一样的)用途:

2.界定事务边界事务提交自动close 

3.current_session_context_class(jta,thread)

  thread使用 connection

 <!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

一般用thread 有session就用当前的session   jta等学了EJB3.0 用于分布式(不止一个数据库)

还有如果设为 
<property name="current_session_context_class">jta</property>

是不行的,application提供,tomcat本身不具备这样的能力(jboss可以,或者用spring也可以),

那要是
<property name="current_session_context_class">thread</property>

这行去掉,



如果要用getCurrentSession是不行了,因为我们没有设置session的上下文,既不是thread也不是jta,所以会报错



11.1. Session和事务范围(transaction scope)

11.2.1. 非托管环境

11.2.2. 使用JTA(学了EJB3再说)



		//Session session = sessionFactory.openSession();
Session session = sessionFactory.getCurrentSession(); session.beginTransaction();
session.save(t); Session session2 = <span style="font-family: Arial, Helvetica, sans-serif;">sessionFactory.getCurrentSession();</span> System.out.println(session == session2) //输出;true session.getTransaction().commit(); //session 提交后 既session2跟着提交了 Session session3 = sessionFactory.getCurrentSession();//重新打开一个 System.out.println(session == session3);//输出:false

版权声明:本文为博主原创文章,未经博主允许不得转载。

hibernate---核心开发接口1(重点)的更多相关文章

  1. Hibernate学习笔记2.5(Hibernate核心开发接口和三种状态)

    1.configuration(配置信息管理,产生sessionfactory) sessionfactory管理一系列的连接池 opensession 永远打开新的,需要手动close getcur ...

  2. Hibernate核心开发接口_SessionFactory详解

    SessionFactory: a)  用来产生和管理Session b)通常情况下每个应用只需要一个SessionFactory c)除非要访问多个数据库的情况 d) 关注两个方法即:  openS ...

  3. hibernate核心开发接口_Configuration

    AnnotationConfiguration继承自Configuration,这里以AnnotationConfiguration为例: new AnnotationConfiguration(). ...

  4. 5.Hibernate 核心开发接口

    一.Configuration(AnnotationConfiguration) 作用:进行配置信息的管理 目标:用来产生SessionFactory 可以在configure 方法中指定hibern ...

  5. HIbernate学习笔记(二) hibernate对象的三种状态与核心开发接口

    1.在hibernate中持久化对象有三个状态,这个面试时可能会问到: (1)transient瞬时态:在数据库中没有与之匹配的数据,一般就是只new出了这个对象,并且在session缓存中也没有即此 ...

  6. Hibernate系列之核心开发接口

    一.概述 所有的hibernate应用中都会访问5个核心接口,它们分别是: Configuration:配置hibernate,创建SessionFactory对象 SessionFactory:初始 ...

  7. hibernate(五)核心开发接口与对象的三种状态

    本文链接:http://www.orlion.ml/37/ 一.Configuration 1.AnnotationConfiguration 2.进行配置信息的管理 3.configure()方法通 ...

  8. Hibernate 再接触 核心开发接口

    1.可以重载方法进行配置文件的指定 sessionFactory = new AnnotationConfiguration().configure("hibernate.xml" ...

  9. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

随机推荐

  1. 设置ShowDialog

    1.在winform窗体中的button控件,可以直接设置DialogResult属性为OK或者Cancel来控制其他窗口中调用此窗口需要验证DialogResult结果是OK还是其他....

  2. 【转】IE11的变化

    1.navigator.userAgent中不再包含“MSIE”关键字 2.用javascript的判断是否是IE11的方法是: var isIE11 = (sUserAgent.toLowerCas ...

  3. js JSON对象属性

    json对象是是一种用于原生json分析的对象,无法对其进行构造函数调用,用java术语 来说,它相当于能够直接使用类方法的工具类JSON对象的属性parse(text[,reviver]);对参数t ...

  4. EditText 监听回车事件 避免2次触发

    // 侦听回车事件 EidtText txtSN = (EditText) findViewById(R.id.txtSN); txtSN.setOnEditorActionListener(new ...

  5. python SocketServer 源码分析

    附上原文链接: http://beginman.cn/python/2015/04/06/python-SocketServer/

  6. python35

    在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码.Python对bytes类型的数据用带b前缀的单引号或双引号表示x = b'ABC' //每个字 ...

  7. JQuery识别键盘操作 & 键盘快捷键

    前几天写的那个项目登陆页是直接点击but登陆的,后来做完了之后不断的测试的时候就发现蛋疼之处了 每次在键盘上输入一长串密码之后,还得抬起手拿鼠标点一下确认登陆 直接就搜了一下,看了一下书 = = 其实 ...

  8. C#调用C++ Dll

    现在项目基本都是旁边C++的哥们做好dll扔给我,然后我调用.好久之前晚上down了一份c#调用c++dll的方法,出处早已经遗忘.闲来无事,放上来好了.原作者看到后可以留言,我会把您链接放上的,帮了 ...

  9. spring 基本操作总结主要是aop以及依赖注入的基本配置

    一所需架包 spring commom-logging.jar  spring.jar 注解 common-annotation.jar aop面向切面 aspectjrt.jar    aspect ...

  10. rman 命令

    OS: Oracle Linux Server release 5.7 DB: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - ...