`
wangtong40
  • 浏览: 253962 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HIbernate 大批量数据处理

    博客分类:
  • ORM
阅读更多

<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--> <!-- [if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} </style> <![endif]-->

<!-- [if !supportLists]-->节 1.01   <!-- [endif]-->HQL 更新 / 删除大批量数据

Transaction transaction = session .beginTransaction();

String hql = "UPDATE UserInfo user set user.username=:username,user.password=:password" ;

Query query = session .createQuery(hql);

query.setString(paramsName[0], paramsValue [0]);

query.executeUpdate();

transaction.commit();

注:使用 HQL 处理大批量数据会直接执行 DML 语句,从而绕过 Hibernate 的上下文和所有高速缓存。

<!-- [if !supportLists]-->节 1.02   <!-- [endif]-->HQL 创建大批量数据

Query q = session.createQuery( "INSERT INTO LostCreditCard(type,number) SELECT c.type,c.number FROM CreditCard c join c.user u" );

int createdObjects = q.executeUpdate();

 

<!-- [if !supportLists]-->节 1.03   <!-- [endif]-->批量更新数据

Hibernate.xml 文件中添加以下内容

< property name = "hibernate.jdbc.batch_size" > 20 </ property >

 

Session session = sessionFactroy.openSession();

Transaction tx = session.beginTransaction();

Query query = session.createQuery()

ScrollableResults cursor = query.scroll( "FROM SettleEnterRecord" ).scroll();

int count = 0;

while (cursor.next()) {

    SettleEnterRecord record = (SettleEnterRecord) cursor.get(0);

record.setIsValid( "2" );

if (++count % 100 == 0) {

              session.flush();

              session.clear();

           }

       }

tx.commit();

session.close();

<!-- [if !supportLists]-->节 1.04   <!-- [endif]-->批量插入数据

Session session = sessionFactroy.openSession();

Transaction tx = session.beginTransaction();

for ( int i = 0 ; i < 100000; i ++){

              Item item = new Item ();

              session.save(item);

              if (i%100 == 0){

                  session.flush ();

                  session.clear ();

              }

           }

tx.commit();

session.close ();

 

分享到:
评论

相关推荐

    Hibernate下数据批量处理解决方案

    以下是一些关于如何在Hibernate环境下优化批量数据处理的策略。 首先,了解问题的根源。在上述例子中,当尝试向数据库插入100,000条数据时,由于默认情况下Hibernate会将所有持久化对象保留在一级缓存中,随着数据...

    hibernate-release-4.3.0.Beta2

    3. 更强大的批处理:通过改进的批处理策略,减少了数据库交互次数,提升了大批量数据处理能力。 4. 新的事件监听器:提供了更多扩展点,方便自定义业务逻辑。 五、实际应用 在实际开发中,Hibernate常用于企业级...

    hibernate4.3.9

    此外,对于大批量数据操作,也进行了性能调优。 6. **元数据API**: 元数据API得到了增强,使得获取实体和关联信息更加方便,这对于动态生成代码或者进行元编程非常有用。 7. **实体生命周期回调**: Hibernate ...

    hibernate中文文档

    6. 批量操作:优化大批量数据的处理,如Session.saveOrUpdateAll()。 六、最佳实践 1. 使用注解:尽量避免XML映射文件,使用注解进行ORM配置。 2. 事务管理:合理划分事务边界,避免脏读、不可重复读等问题。 3. ...

    jsp Hibernate批量更新和批量删除处理代码

    当涉及到批量数据处理时,如大批量的更新和删除操作,性能和效率成为开发者需要重点考虑的问题。本文将详细介绍如何在使用JSP和Hibernate环境下进行高效的批量更新与删除操作。 ### 批量更新与批量删除 批量操作指...

    hibernate-release-4.2.21.Final.zip

    例如,合理使用缓存策略,避免N+1查询问题,以及在处理大批量数据时启用批处理等。 6. **实战应用**: 学习Hibernate不仅仅是理论,更需要通过实际项目来提升技能。可以尝试搭建一个简单的CRUD应用,逐步理解和...

    Hibernate实战(第2版 中文高清版)

     12.2.1 使用HQL和JPA QL的大批量语句   12.2.2 利用批量处理   12.2.3 使用无状态的会话   12.3 数据过滤和拦截   12.3.1 动态数据过滤   12.3.2 拦截Hibernate事件   12.3.3 内核事件系统   12.3.4...

    hibernate 总结

    批量处理是提高数据处理效率的有效手段,文档讨论了批量插入、批量更新以及大批量更新/删除的实现方法,有助于优化数据库操作的性能。 总之,这份文档不仅是一份关于Hibernate使用的总结,更是深入学习和掌握该框架...

    Hibernate4(关系映射-事务-原理-性能和二级缓存-最佳实践)

    4. 性能优化:Hibernate框架在操作数据库时可能会产生性能瓶颈,特别是在大批量数据操作时。性能优化可以包括合理配置二级缓存、优化HQL查询语句、使用批量操作减少数据库交互次数、控制懒加载的使用等。在配置时,...

    hibernate3.6 文档(pdf 格式)

    - **批量更新**:讨论如何优化大批量数据的更新操作。 - **无状态 Session 接口**:解释如何使用 StatelessSession 接口进行高效的数据操作。 - **DML 风格操作**:展示如何使用类似 DML 的风格执行批量操作。 ####...

    最全Hibernate 参考文档

    13.3. 大批量更新/删除(Bulk update/delete) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. select子句 14.5. 聚集函数 14.6. 多态查询 14.7. ...

    hibernate参考手册

    探讨了如何利用Hibernate进行高效的批量数据处理,包括批量插入、批量更新和大批量更新/删除操作,以及如何通过合理配置提升应用的整体性能。这部分对于处理大数据量的应用场景尤为重要。 七、Hibernate与J2EE应用...

    Hibernate_教程

    批量处理技术,如批量插入、批量更新和大批量更新/删除,可以显著提高大量数据的处理效率。Hibernate的HQL(Hibernate Query Language)是一种面向对象的查询语言,用于执行复杂的数据检索和聚合操作。HQL语法类似于...

    Hibernate教程

    14.3. 大批量更新/删除(Bulk update/delete) 15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 ...

    [尚硅谷]_佟刚_Hibernate面试题分析

    - 直接通过JDBC API或存储过程进行操作,这是处理大批量更新的最佳方式。 7. OpenSessionView问题: - 主要用于解决懒加载异常,将Hibernate Session与请求线程绑定,保证页面读取数据时Session开启状态。 - ...

    hibernate-release-4.1.8.Final.tgz

    5. 深入理解 Hibernate 的自动批处理机制,优化大批量数据操作。 通过深入学习和熟练运用 Hibernate 4.1.8.Final,开发者可以在 Java 应用中实现高效、稳定的数据库操作,提高项目开发效率,降低维护成本。无论是在...

    Hibernate性能优化

    适用于需要频繁进行大批量数据读取的应用场景,例如报表系统、数据分析平台等。 #### 二、Batch Size的合理配置 **知识点解析:** Batch Size是指在执行批量操作时,Hibernate一次提交的SQL语句数量。合理的Batch ...

    hibernate3.04中文文档.chm

    14.3. 大批量更新/删除(Bulk update/delete) 15. HQL: Hibernate查询语言 15.1. 大小写敏感性问题 15.2. from子句 15.3. 关联(Association)与连接(Join) 15.4. select子句 15.5. 聚集函数 15.6. 多态查询 ...

    Hibernate3+中文参考文档

    13.3. 大批量更新/删除(Bulk update/delete) 14. HQL: Hibernate查询语言 14.1. 大小写敏感性问题 14.2. from子句 14.3. 关联(Association)与连接(Join) 14.4. select子句 14.5. 聚集函数 14.6. 多态查询 14.7. ...

Global site tag (gtag.js) - Google Analytics