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

Posted

篇首语:岁寒,然后知松柏之后凋也。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate的批量处理[1]相关的知识,希望对你有一定的参考价值。

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

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

  总结下来有三种来处理以解决性能问题

   绕过Hibernate API 直接通过 JDBC API 来做 这个方法性能上是比较好的 也是最快的

   运用存储过程

   还是用Hibernate API 来进行常规的批量处理 可以也有变 变就变在 我们可以在查找出一定的量的时候 及时的将这些数据做完操作就

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

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

Transaction tx=session beginTransaction() //注意用的是hibernate事务处理边界

    Connection conn=session connection()

    PreparedStatement stmt=conn preparedStatement( update CUSTOMER as C set C sarlary=c sarlary+ where c sarlary> )

    stmt excuteUpdate()

    tx mit() //注意用的是hibernate事务处理边界

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

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

  如果底层数据库(如Oracle)支持存储过程 也可以通过存储过程来执行批量更新 存储过程直接在数据库中运行 速度更加快 在Oracle数据库中可以定义一个名为batchUpdateCustomer()的存储过程 代码如下

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

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

  tx = session beginTransaction()

    Connection con=session connection()

    String procedure = call batchUpdateCustomer(?)

    CallableStatement cstmt = con prepareCall(procedure)

    cstmt setInt( ) //把年龄参数设为

    cstmt executeUpdate()

    tx mit()

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

cha138/Article/program/Java/ky/201311/29173

相关参考

知识大全 Hibernate的批量处理

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

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

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

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

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

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

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

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

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

知识大全 浅析Hibernate下数据批量处理方法

浅析Hibernate下数据批量处理方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很多人都

知识大全 Spring+Hibernate处理大批量数据

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

知识大全 Hibernate下数据批量处理解决方案

Hibernate下数据批量处理解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  很多人都

知识大全 简单概括Hibernate批量操作

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

知识大全 Hibernate批量更新与删除实例浅析

Hibernate批量更新与删除实例浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在我们的