<update id="updateVersionAndGroupCaseWhen" parameterType="java.util.List">
update tb_system_setting
<trim prefix="set" suffixOverrides=",">
<trim prefix="item_value=case" suffix="end,">
<foreach collection="list" item="item" index="index">
when item_name=#{item.itemName} then #{item.itemValue}
</foreach>
</trim>
</trim>
where item_name in
<foreach collection="list" index="index" item="item" separator="," open="(" close=")">
#{item.itemName}
</foreach>
</update>
实测性能:
1 单条测试:
请看测试代码:
@Resource
private SystemSettingMapper systemSettingMapper;
@Test
public void updateGroupAndVersion() {
List<SystemSetting> list = new ArrayList<>();
SystemSetting srvVersion1 = new SystemSetting("srvVersion", "1");
SystemSetting group = new SystemSetting("group", "12345678");
list.add(srvVersion1);
list.add(group);
int result = 0;
String start = LocalDateTime.now().toString();
System.err.println("=====================开启了啊,哈哈哈=====================" + start);
// result = this.systemSettingMapper.updateVersionAndGroupCaseWhen(list);
result = this.systemSettingMapper.updateVersionAndGroup(list);
System.err.println("=====================" + result + "=====================");
System.err.println("=====================结束了啊=====================\tstart\t" + start + "\tend\t" + LocalDateTime.now().toString());
}
第一种:
可以看到时间相差为 31毫秒,现在咱们看看一百条数据量的差别,循环一百次查看性能:
代码:
@RunWith(SpringRunner.class)
@SpringBootTest
public class UpdateGroupAndVersion {
@Resource
private SystemSettingMapper systemSettingMapper;
@Test
public void updateGroupAndVersion() {
List<SystemSetting> list = new ArrayList<>();
SystemSetting srvVersion1 = new SystemSetting("srvVersion", "1");
SystemSetting group = new SystemSetting("group", "12345678");
list.add(srvVersion1);
list.add(group);
int result = 0;
String start = LocalDateTime.now().toString();
System.err.println("=====================开启了啊,哈哈哈=====================" + start);
for (int i = 0; i < 100; i++) {
// result = this.systemSettingMapper.updateVersionAndGroupCaseWhen(list);
result = this.systemSettingMapper.updateVersionAndGroup(list);
}
System.err.println("=====================" + result + "=====================");
System.err.println("=====================结束了啊=====================\tstart\t" + start + "\tend\t" + LocalDateTime.now().toString());
}
}