如何解决Hibernate批量更新问题

技术如何解决Hibernate批量更新问题这篇文章主要介绍了如何解决Hibernate批量更新问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于Hib

本文主要介绍如何解决Hibernate的批量更新问题,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后有很多收获。让边肖带你去了解一下。

对于Hibernate的批量更新操作,Hibernate会找出符合要求的数据,然后进行更新操作。批量删除也是如此。首先找出符合条件的数据,然后删除。

这有两个主要缺点:

1.占用大量内存。

2.在处理海量数据时,执行update/delete语句是海量的,一条update/delete语句只能操作一个对象,所以应该可以想象,频繁操作数据库时性能会很低。

Hibernate3发布后,Hibernate的批量更新/删除操作引入了批量更新/删除。其原理是通过一条HQL语句完成批量更新/删除操作,这与JDBC的批量更新/删除操作非常相似。与Hibernate批量更新/删除相比,性能大幅提升。

transactiontx=session . BeginSession();StringHQL=" deleteSTUDENTquery query=session . createquery(HQL);int size=query . execute update();tx.commit();……控制台只输出一条删除语句hibernate: delete from t _ student。语句的执行较少,性能与JDBC几乎相同,是一种很好的提升性能的方法。当然,为了有更好的性能,作者建议使用JDBC进行批量更新和删除。方法和基本知识点与上面的批量插入方法2基本相同,在此不再赘述。

在这里,作者提供了另一种方法,即从数据库端考虑提高性能,从Hibernate程序端调用存储过程。存储过程在数据库端运行得更快。以批量更新为例,给出了参考代码。

首先,在数据库端建立一个名为batchUpdateStudent的存储过程:

transactiontx=session . BeginSession();connection conn=session . connection();string PD="……{ callbatchUpdateStudent(?)}";callablestatementcstt=conn . prepare call(PD);csmt . setint(1,20);//将年龄参数设置为20tx.com MIT();看看上面的代码,也是绕过Hibernate API,使用JDBC API调用存储过程,使用Hibernate的事务边界。存储过程无疑是提高批处理性能的好方法。它直接与数据库一起运行,在某种程度上将批处理的压力转移到了数据库上。

感谢您仔细阅读本文。希望边肖分享的文章《如何解决Hibernate批量更新的问题》对大家有所帮助。同时也希望大家多多支持,关注行业信息渠道,多了解!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/137022.html

(0)

相关推荐

  • CentOS/RHEL系统如何实现每天自动备份MySQL数据库

    技术CentOS/RHEL系统如何实现每天自动备份MySQL数据库这篇文章主要介绍CentOS/RHEL系统如何实现每天自动备份MySQL数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    攻略 2021年11月15日
  • 配置化+Serverless 开发个人博客「附源码」

    技术配置化+Serverless 开发个人博客「附源码」 配置化+Serverless 开发个人博客「附源码」高清原画 链接: https://pan.baidu.com/s/1d6YONkCi4u7T

    礼包 2021年11月5日
  • jvm内存结构及原理(jvm内存结构讲解)

    技术JVM内存的结构是怎样的这篇文章主要介绍“JVM内存的结构是怎样的”,在日常操作中,相信很多人在JVM内存的结构是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JVM内存的结构是

    攻略 2021年12月21日
  • 至于颠覆,物理学中有什么颠覆世界观的理论

    技术至于颠覆,物理学中有什么颠覆世界观的理论量子力学的诡异现象量子力学也是自然科学史上被实验证明最精确的一个理论,但是量子的观念,没有人能够理解至于颠覆。我说的没有人能够理解,绝不是指像我们这个层次的人,而是说连量子力学

    生活 2021年10月20日
  • php自己写留言板教程(php超级简单留言板代码)

    技术php如何实现简易留言板小编给大家分享一下php如何实现简易留言板,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    攻略 2021年12月16日
  • 什么叫奇数什么叫偶数,合数、质数、偶数、奇数怎么分辨

    技术什么叫奇数什么叫偶数,合数、质数、偶数、奇数怎么分辨质数与合数,是从约数的个数进行区别的,一个大于1的整数,如果只有1和它本身两个约数,那么这个数就叫做质数什么叫奇数什么叫偶数;如果除了1和它本身还有其它的约数,这个

    生活 2021年10月23日