广告
返回顶部
首页 > 资讯 > 精选 >Hibernate如何实现批量处理
  • 792
分享到

Hibernate如何实现批量处理

2023-06-17 21:06:46 792人浏览 安东尼
摘要

这篇文章给大家分享的是有关Hibernate如何实现批量处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hibernate批量处理其实从性能上考虑,它是很不可取的,浪费了很大的内存。从它的机制上讲,Hibern

这篇文章给大家分享的是有关Hibernate如何实现批量处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

Hibernate批量处理其实从性能上考虑,它是很不可取的,浪费了很大的内存。从它的机制上讲,Hibernate它是先把符合条件的数据查出来,放到内存当中,然后再进行操作。实际使用下来性能非常不理想,在笔者的实际使用中采用下面的第三种优化方案的数据是:100000条数据插入数据库,主流台式机的配置,需要约30分钟,呵呵,晕倒。

总结下来有三种来处理以解决性能问题:
1:绕过Hibernate api ,直接通过 JDBC API 来做,这个方法性能上是比较好的。也是最快的。
2:运用存储过程。
3:还是用Hibernate API 来进行常规的批量处理,可以也有变,变就变在,我们可以在查找出一定的量的时候,及时的将这些数据做完操作就

删掉,session.flush();session.evict(XX对象集); 这样也可以挽救一点性能损失。这个“一定的量”要就要根据实际情况做定量参考了。一般为30-60左右,但效果仍然不理想。

绕过Hibernate API ,直接通过 JDBC API 来做,这个方法性能上是比较好的,也是最快的。(实例为 更新操作)

  1. Transaction tx=session.beginTransaction();   

  2. //注意用的是hibernate事务处理边界  

  3. Connection conn=session.connection();  

  4. PreparedStatement stmt=conn.preparedStatement
    ("update CUSTOMER as C set C.sarlary=c.sarlary+1 where c.sarlary>1000");  

  5. stmt.excuteUpdate();  

  6. tx.commit();   

  7. //注意用的是hibernate事务处理边界 

小程序中,采用的是直接调用JDBC 的API 来访问数据库,效率很高。避免了Hibernate 先查询出来加载到内存,再进行操作引发的性能问题。

运用存储过程。但这种方式考虑到易植和程序部署的方便性,不建议使用。(实例为 更新操作)

如果底层数据库(如oracle)支持存储过程,也可以通过存储过程来执行批量更新。存储过程直接在数据库中运行,速度更加快。在Oracle数

据库中可以定义一个名为batchUpdateCustomer()的存储过程,代码如下:

  1. create or replace procedure batchUpdateCustomer(p_age in number) 
    as begin update CUSTOMERS set AGEAGE=AGE+1 where AGE>p_age;

  2. end; 

以上存储过程有一个参数p_age,代表客户的年龄,应用程序可按照以下方式调用存储过程:

tx = session.beginTransaction();  Connection con=session.connection();  String procedure = "{call batchUpdateCustomer(?) }";  CallableStatement cstmt = con.prepareCall(procedure);  cstmt.setInt(1,0);  //把年龄参数设为0  cstmt.executeUpdate();  tx.commit();

从上面程序看出,应用程序也必须绕过Hibernate API,直接通过JDBC API来调用存储过程。

感谢各位的阅读!关于“Hibernate如何实现批量处理”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Hibernate如何实现批量处理

本文链接: https://www.lsjlt.com/news/293278.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Hibernate如何实现批量处理
    这篇文章给大家分享的是有关Hibernate如何实现批量处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Hibernate批量处理其实从性能上考虑,它是很不可取的,浪费了很大的内存。从它的机制上讲,Hibern...
    99+
    2023-06-17
  • 如何使用批处理文件实现批量注册dll
    这篇文章主要为大家展示了“如何使用批处理文件实现批量注册dll”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用批处理文件实现批量注册dll”这篇文章吧。但是对于新手来说即使知道是DLL文件...
    99+
    2023-06-08
  • 如何解决Hibernate批量更新问题
    这篇文章主要介绍了如何解决Hibernate批量更新问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。对于Hibernate批量更新操作,Hibernate是将符合要求的数据...
    99+
    2023-06-17
  • 批处理如何实现一键批量备份网站数据
    这篇文章将为大家详细讲解有关批处理如何实现一键批量备份网站数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。把以下代码另存为AutoBAK.BAT文件放到你要打包的目录下双击执行即可!非常适合虚拟主机商批...
    99+
    2023-06-08
  • 如何实现批量列出所有文件名的批处理
    这篇文章给大家分享的是有关如何实现批量列出所有文件名的批处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。快速列出目录下的所有文件名称。 用法:把一下代码保存为*.bat格式,放到目标根目录下双击就OK了 代码如...
    99+
    2023-06-08
  • Python实现文件名批量处理
    我们知道文件名是可以手动修改的,但是如果要同时修改多个文件名,那一个一个修改会浪费掉很多时间,此时我们就可以考虑使用python来实现文件名的批量处理。想要批量处理文件名首先确定需要处理的文件名,以及确定处理后新的文件名,这样就可以开始处理...
    99+
    2023-06-02
  • 如何实现批量vps管理
    这篇文章主要介绍了如何实现批量vps管理的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何实现批量vps管理文章都会有所收获,下面我们一起来看看吧。首先,下载解压iis7远程桌面管理工具:点击右上角的【添加】添...
    99+
    2023-06-02
  • 批处理中如何实现预处理
    这篇文章主要为大家展示了“批处理中如何实现预处理”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理中如何实现预处理”这篇文章吧。一、预处理究竟要做什么? 根据我的经验,预处理要做的是变量值的替...
    99+
    2023-06-08
  • 如何实现远程批量修改计算机IP设置的批处理
    这篇文章主要介绍了如何实现远程批量修改计算机IP设置的批处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。网络IP设置远处更改脚本。 当网络整改需要大量IP修改的时候,可利用...
    99+
    2023-06-08
  • ps如何批量处理图片
    本文小编为大家详细介绍“ps如何批量处理图片”,内容详细,步骤清晰,细节处理妥当,希望这篇“ps如何批量处理图片”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。ps动作批量处理图片:首先进入ps软件,然后点击窗口,...
    99+
    2023-07-02
  • 怎么用bat批处理实现批量修改文件名
    这篇文章主要讲解了“怎么用bat批处理实现批量修改文件名”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用bat批处理实现批量修改文件名”吧!我们已经会使用循环命令对大量文件改名进行批量处...
    99+
    2023-06-08
  • Python实现Word文档样式批量处理
    这里批量处理word文档的操作主要是通过python-docx非标准库实现的,通过定位到文档对象、再到段落、最后到一行文本从而完成针对文字对象的处理。 使用pip的方式安装pyth...
    99+
    2022-11-11
  • python图像的批量处理怎么实现
    这篇文章主要介绍了python图像的批量处理怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python图像的批量处理怎么实现文章都会有所收获,下面我们一起来看看吧。图片集合函数skimage.io.Im...
    99+
    2023-07-02
  • JAVA实现批处理
    实际项目中,经常需要对数据进行批量处理。[@more@]下面这个例子,是从tab分隔的csv文件里读取数据,把数据写入hostname上的DBNAME的USER_MASTER里。import java.io.*;import java.sq...
    99+
    2023-06-03
  • 如何实现批处理bat后门
    这篇文章将为大家详细讲解有关如何实现批处理bat后门,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:@echo off     @att...
    99+
    2023-06-09
  • 批处理如何实现倒计时
    这篇文章主要为大家展示了“批处理如何实现倒计时”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理如何实现倒计时”这篇文章吧。代码如下:@echo off echo exit|%ComSpec%...
    99+
    2023-06-09
  • 批处理如何实现OFFICE复位
    这篇文章主要为大家展示了“批处理如何实现OFFICE复位”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“批处理如何实现OFFICE复位”这篇文章吧。代码如下:@echo of ...
    99+
    2023-06-09
  • 批处理如何实现数码雨
    小编给大家分享一下批处理如何实现数码雨,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:@echo off color 0a :start set num=...
    99+
    2023-06-09
  • 如何实现批处理蠕虫bat
    这篇文章主要介绍了如何实现批处理蠕虫bat,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码如下:@echo off  attrib ...
    99+
    2023-06-09
  • 如何实现批处理加密.bat
    这篇文章给大家分享的是有关如何实现批处理加密.bat的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。代码如下:%%a %%a %%a %%a %%a %%a&nbs...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作