当前位置:编程学习 > JAVA >>

mybatis高效率批量update

小弟想要批量update数据,以便减少与Oracle的交互。使用mybatis。
我一种写法:
<update id="batchUpdateTest" parameterType="java.util.List">
<foreach collection="list" item="i" separator="" open="begin" close="end;">

update table_x set 

name=#{i.name}

where id= #{i.id};
</foreach>
</update>

但发现效率还不如一条一条update,多次交互更新。

试问大伙,有没有其他的写法,增加效率的???
mybatis oracle 批量update --------------------编程问答-------------------- 难道,没人会?还是mybatis对批量update无能为力 --------------------编程问答-------------------- 个人觉得应该没问题,主要是你数据量有多大,加大数据量再测试一下看看 --------------------编程问答-------------------- 不能吧,这位亲确定有没有session.commit(false);及session.commit(); ?
另外,我一般这么写

<insert id="insertBatch" parameterType="mybatis.bean.TTest3">
insert into test3(name,value,ftname)values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.name},#{item.value},'')
</foreach>
</insert>
--------------------编程问答-------------------- 批量操作的话最适合的还是 jdbc,框架实现批量是很慢的 --------------------编程问答--------------------
引用 3 楼 AFer198215 的回复:
不能吧,这位亲确定有没有session.commit(false);及session.commit(); ?
另外,我一般这么写

<insert id="insertBatch" parameterType="mybatis.bean.TTest3">
insert into test3(name,value,ftname)values
<foreach collection="list" item="item" index="index" separator=",">
(#{item.name},#{item.value},'')
</foreach>
</insert>


我只能呵呵了…… --------------------编程问答--------------------
引用 4 楼 defonds 的回复:
批量操作的话最适合的还是 jdbc,框架实现批量是很慢的


项目要求用mybatis,我也没办法…… --------------------编程问答--------------------
引用 2 楼 abstruct 的回复:
个人觉得应该没问题,主要是你数据量有多大,加大数据量再测试一下看看


不是数据了的问题……我只是测试10条数据的update。
mybatis完全是靠List数据拼出十条update……应该不是数据了的问题 --------------------编程问答-------------------- 我以前也是用过mybatis做项目,批量关联删除用in,foreach拼凑的sql,mybatis好像没有什么批量删除的方法, 你这样写跟一条条执行没啥区别 --------------------编程问答-------------------- 其实何苦纠结于此了,框架不能满足的时候可以考虑换一种实现方式撒,总不能就被框架搞死了撒
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,