Mybatis3.0如何做批量update并返回批量更新的结果呢
我第一次使用mybatis不是很熟悉有个语句不知道如何写,请用过的朋友指教一下
场景
update table set field1='123',field2='we',field3='1212', field4=1, field5=0 where id=1
update table set field1='324',field2='tet',field3='244', field4=0, field5=1 where id=2
....
....
....
我的更新数据与更新的条件全部在一个List列表中的,要求更新后返回每一条的更新结果。
mybatis的有规律批量更新我知道怎么写,比如把某个字段批量更新条件在一个列表中的,但是像这种多个字段更新都不一样,而且条件也不一样的要怎么写?而且我看了mybatis的<update>xml标记好像没有resultType=一个数组的。
我目前是这样做的
<update ....>
<foreach ........>
update table .............. where .....
</foreach>
</update>
这样返回的结果是一个int型,如果某条记录没更新到或者失败我也不知道。而且感觉这样好像并不是一个最优方案,请大家提供一下更好的方法给我
场景
update table set field1='123',field2='we',field3='1212', field4=1, field5=0 where id=1
update table set field1='324',field2='tet',field3='244', field4=0, field5=1 where id=2
....
....
....
我的更新数据与更新的条件全部在一个List列表中的,要求更新后返回每一条的更新结果。
mybatis的有规律批量更新我知道怎么写,比如把某个字段批量更新条件在一个列表中的,但是像这种多个字段更新都不一样,而且条件也不一样的要怎么写?而且我看了mybatis的<update>xml标记好像没有resultType=一个数组的。
我目前是这样做的
<update ....>
<foreach ........>
update table .............. where .....
</foreach>
</update>
这样返回的结果是一个int型,如果某条记录没更新到或者失败我也不知道。而且感觉这样好像并不是一个最优方案,请大家提供一下更好的方法给我
...全文
相关推荐
Mybatis Update操作返回值问题
这对于依赖返回值进行业务逻辑判断的情况尤其重要,例如判断操作是否成功、处理并发冲突等。总结来说,Mybatis 的 update 返回值并不是总是代表真正被修改的行数,而是取决于数据库驱动的行为。
5.5 Mybatis Update标签实战,返回值是什么? 教你通常处理做法
通过 《上文》,我们学会了如何在Mybatis中使用insert标签,并学会了使用两种方式获取返回主键id,本文主要讲解update标签,用于和update SQL语句映射,依然结合实战边做边讲。其实update标签非常简单,知识点不多!返回值是什么?为什么要讲返回值呢?确实是因为有同学在群里对上文的insert标签返回值提出了疑问,实际update标签更有代表性,因为单条insert只要没有异常,返回值总是1,所以我们没必要进行处理!
Mybatis批量更新三种方式的实现
= 0 && index%batchCount == 0){ sqlSession.commit(); } } ... }```这种方式可以实现批量更新,但是无法返回受影响数量。
MyBatis批量插入Update
MyBatis批量插入是一种高效的数据插入方式,可以大大提高插入速度和减少数据库交互次数。但是需要注意可能出现的内存不足的问题,并提前修改MySql的配置文件以避免这种情况。
Mybatis只更新set过的字段插件
这个插件的主要作用是自动识别Mybatis中的Update语句,根据传入的参数对象,只对设置了新值的字段生成UPDATE语句,从而避免了全字段更新的问题,提高了数据更新的效率,并降低了数据库锁定的风险。


Web 开发
