- 1、本文档共94页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate应用概要1
4.4.1 Hibernate批量处理 下面将使用HQL批量删除课程表中课程号大于200的课程。 Session session=HibernateSessionFactory.getSession(); Transaction ts=session.beginTransaction(); //在HQL查询中使用delete进行批量删除 Query query=session.createQuery(delete Kcb where kch200); query.executeUpdate(); mit(); HibernateSessionFactory.closeSession(); 4.4.1 Hibernate批量处理 (2)绕过Hibernate调用JDBC进行批量删除 同样删除课程表中课程号大于200的课程。 Session session=HibernateSessionFactory.getSession(); Transaction ts=session.beginTransaction(); Connection conn=session.connection(); try { Statement stmt= conn.createStatement(); //调用JDBC的delete进行批量删除 stmt.executeUpdate(delete from KCB where KCH200); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } mit(); HibernateSessionFactory.closeSession(); 4.4.2 实体对象生命周期 实体对象的生命周期有以下3种状态。 1.transient(瞬时态) 瞬时态,即实体对象在内存中的存在,与数据库中的记录无关。如下面的代码: Student stu=new Student(); stu.setSnumber(081101); stu.setSname(李方方); stu.setSage(21); 2.persisent(持久态) 在这种状态下,实体对象的引用被纳入Hibernate实体容器中加以管理。处于持久状态的对象,其变更将由Hibernate固化到数据库中。例如下面的代码。 4.4.2 实体对象生命周期 3.Detached(脱管状态) 处于持久态的对象,其对应的Session实例关闭之后,此对象就处于脱管状态。Session实例可以看做是持久对象的宿主,一旦此宿主失效,其从属的持久对象进入脱管状态。如下面的代码: // stu处于瞬时态 Student stu=new Student(); Student stu1=new Student(); stu.setSnumber(081101); stu.setSname(李方方); stu.setSage(21); stu1.setSnumber(081102); stu1.setSname(程明); stu1.setSage(22); Transaction tx=session.beginTransaction(); // stu对象由Hibernate纳入管理容器,处于持久状态 session.save(stu); mit(); // stu对象状态为脱管态,因为与其关联的session已经关闭 session.close(); 4.4.3 Hibernate事务管理 1.基于JDBC的事务管理 Hibernate是JDBC的轻量级封装,本身并不具备事务管理能力。在事务管理层,Hibernate将其委托给底层的JDBC或JTA,以实现事务管理和调度功能。 在JDBC的数据库操作中,一项事务是由一条或多条表达式组成的不可分割的工作单元,通过提交commit()或回滚rollback()来结束事务的操作。 将事务管理委托给JDBC进行处理是最简单的实现方式,Hibernate对于JDBC事务的封装也比较简单。如下面的代码: Session session=sessionFactory.openSession(); Transaction tx=session.beginTransaction(); session.save(room); mit(); 从JDBC层面而言,上面的代码实际上对应着: Connection cn=getConnection; cn.setAutoCommit(false); // JDBC调用相关的SQL语句 mit(); 4.4.3 Hibernate事务管理 下面的代码不会对数据库产
您可能关注的文档
- hebaofeng_第06章JAVA异常处理_2012100895853.ppt
- 来来往往的汽车方案一.ppt
- heizer10e_ch04 运营管理 PPT (10th Edition) by Jay Heizer and Barry Render.ppt
- 杨寻:广告教学设计与图片.doc
- Heathly lifestyle健康的生活方式.doc
- 杜甫诗三首_课件.ppt
- heat pipe 设计原理及制造.ppt
- heizer10e_ch06 运营管理 PPT (10th Edition) by Jay Heizer and Barry Render.ppt
- 来一斤母爱.ppt
- 杨庄小学中小学生综合行为习惯的养成教育.ppt
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
文档评论(0)