05_Mybatis的批量更新与插入

@Author Jacky Wang
在使用Mybatis进行批量插入与更新的时候,遍历一条条的操作效率太低,因此采用mybatis的动态sql实现批量操作。

1. mybatis批量插入

示例如下:

这里有个注意点:
    括号的分隔不能在标签里面使用close与open使用。


    insert t_tag_binding (goods_id,status,epc,tid,op_scene,origin_id,create_date,creater,client_id)values
    
        ( #{item.goodsId,jdbcType=BIGINT},
        #{item.status,jdbcType=VARCHAR},
        #{item.epc,jdbcType=VARCHAR},#{item.tid,jdbcType=VARCHAR},
        #{item.opScene,jdbcType=VARCHAR},#{item.originId,jdbcType=BIGINT},
        #{item.createDate,jdbcType=TIMESTAMP},#{item.creater,jdbcType=BIGINT}, #{item.clientId,jdbcType=BIGINT}
        )
    

2. mybatis批量更新

示例如下:

MySQL没有提供直接的方法来实现批量更新,但可以使用case when语法来实现这个功能。
注意:最外层trim不能包where条件


    update t_tag
    
        
            
                when epc=#{item.epc} then #{item.goodsId}
            
        
        
            
                
                    when epc=#{item.epc} then #{item.status}
                
            
        
        
            
                
                    when epc=#{item.epc} then #{item.lastUpdate}
                
            
        
    
    where epc in
    
        #{item.epc}
    

你可能感兴趣的:(05_Mybatis的批量更新与插入)