知识大全 Hibernate的批量处理[3]

Posted

篇首语:山高流水长,志大精神旺。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate的批量处理[3]相关的知识,希望对你有一定的参考价值。

Hibernate的批量处理[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  设置hibernate jdbc batch_size参数 可参考如下配置

<hibernate configuration> <session factory>……

    <property name= hibernate jdbc batch_size > </property>……

    <session factory> <hibernate configuration>

  配置hibernate jdbc batch_size参数的原因就是尽量少读数据库 hibernate jdbc batch_size参数值越大 读数据库的次数越少 速度越快 从上面的配置可以看出 Hibernate是等到程序积累到了 个SQL之后再批量提交

  笔者也在想 hibernate jdbc batch_size参数值也可能不是设置得越大越好 从性能角度上讲还有待商榷 这要考虑实际情况 酌情设置 一般情形设置 就可以满足需求了

    程序实现方面 笔者以插入 条数据为例子 如

Session session=HibernateUtil currentSession()

    Transatcion tx=session beginTransaction()

    for(int i= i< i++)

   

    Student st=new Student()

    st setName( feifei )

    session save(st)

    if(i% == ) //以每 个数据作为一个处理单元

   

    session flush() //保持与数据库数据的同步

    session clear() //清除内部缓存的全部数据 及时释放出占用的内存

   

   

    tx mit()

    ……

  在一定的数据规模下 这种做法可以把系统内存资源维持在一个相对稳定的范围

  注意 前面提到二级缓存 笔者在这里有必要再提一下 如果启用了二级缓存 从机制上讲Hibernate为了维护二级缓存 我们在做插入 更新 删除操作时 Hibernate都会往二级缓存充入相应的数据 性能上就会有很大损失 所以笔者建议在批处理情况下禁用二级缓存

cha138/Article/program/Java/ky/201311/29175

相关参考