mybatis如何實(shí)現(xiàn)批量更新

小億
234
2024-08-23 00:56:30

MyBatis提供了updateBatch方法來(lái)實(shí)現(xiàn)批量更新操作。下面是一個(gè)示例:

  1. 首先定義一個(gè)Mapper接口,包含批量更新方法:
public interface UserMapper {

    void updateBatch(List<User> users);

}
  1. 在Mapper XML文件中編寫(xiě)對(duì)應(yīng)的SQL語(yǔ)句:
<update id="updateBatch" parameterType="java.util.List">
    update user
    <set>
        <foreach collection="list" item="user" separator=";">
            id = #{user.id}, name = #{user.name}
        </foreach>
    </set>
</update>
  1. 在Service層調(diào)用Mapper接口的批量更新方法:
@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public void updateBatch(List<User> users) {
        userMapper.updateBatch(users);
    }
}
  1. 在Controller層調(diào)用Service層方法執(zhí)行批量更新操作:
@RestController
public class UserController {

    @Autowired
    private UserService userService;

    @PutMapping("/users")
    public void updateUsers(@RequestBody List<User> users) {
        userService.updateBatch(users);
    }
}

通過(guò)以上步驟,就可以實(shí)現(xiàn)MyBatis的批量更新操作。在執(zhí)行updateBatch方法時(shí),MyBatis會(huì)將傳入的List參數(shù)轉(zhuǎn)換成批量更新的SQL語(yǔ)句執(zhí)行。

0