知识大全 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的批量处理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hibernate批
Hibernate的批量处理[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 设置hiber
Hibernate的批量处理[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 还是用Hibe
Hibernate的批量处理[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于方法采用传
Hibernate的批量处理[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Tra
浅析Hibernate下数据批量处理方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 很多人都
Spring+Hibernate处理大批量数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对
Hibernate下数据批量处理解决方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 很多人都
简单概括Hibernate批量操作 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Hiberna
Hibernate批量更新与删除实例浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在我们的