Java学习 --- mybatisplus使用wrapper组装数据

这篇博客详细介绍了如何使用 MyBatisPlus 进行条件查询、排序、删除和更新操作。通过 `QueryWrapper` 和 `LambdaQueryWrapper`,演示了各种查询和更新场景,包括 like、between、isNotNull、orderBy、delete、update 等方法的使用,展示了在实际开发中如何灵活运用 MyBatisPlus 提高开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、mybatisplus使用wrapper组装数据

@SpringBootTest
public class wrapperTest {
    @Autowired
    private UserMapper userMapper;
    /**
     * 组装条件查询
     */
    @Test
    public void selectUserTest() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like("t_name", "n")
                .between("age", 18, 45)
                .isNotNull("email");
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 组装排序查询
     */
    @Test
    public void selectUser() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.orderByDesc("age")
        .orderByAsc("ids");
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 组装删除功能
     */
    @Test
    public void deleteUser(){
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.isNull("email");
        int delete = userMapper.delete(wrapper);
        System.out.println(delete);
    }

    /**
     * 组装修改功能
     */
    @Test
    public void updateUser() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        //组装条件
        wrapper.gt("age",20)
                .like("t_name","a")
                .or()
                .isNull("email");
        User user = new User();
        user.setName("老李");
        int update = userMapper.update(user, wrapper);
        System.out.println(update);
    }
    @Test
    public void updateUser01() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like("t_name","a")
                .and(i ->i.gt("age",20).or().isNull("email"));
        User user = new User();
        user.setName("小王");
        int update = userMapper.update(user, wrapper);
        System.out.println(update);
    }
    @Test
    public void updateUser02() {
        UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
        userUpdateWrapper.like("t_name","a")
                .and(i ->i.gt("age",20).or().isNull("email"));
        userUpdateWrapper.set("t_name","小霸王");
        int update = userMapper.update(null, userUpdateWrapper);
        System.out.println(update);
    }

    /**
     * 组装查询
     */
    @Test
    public void selectMap() {
        QueryWrapper<User> wrapper = new QueryWrapper<>();
         wrapper.select("t_name", "age", "email");
        List<Map<String, Object>> maps = userMapper.selectMaps(wrapper);
        maps.forEach(System.out::println);
    }
    /**
     * 组装子查询
     */
    @Test
    public void  selectUserIn(){
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.inSql("ids","select ids from t_user where ids <= 10");
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 模拟数据查询
     */
    @Test
    public void selectUser04(){
        String t_name = "n";
        Integer age = null;
        Integer ages = 20;
        QueryWrapper<User> wrapper = new QueryWrapper<>();
        wrapper.like(StringUtils.isNotBlank(t_name),"t_name",t_name)
                .ge(age != null,"age",age)
                .le(ages != null,"age",ages);
        List<User> userList = userMapper.selectList(wrapper);
        userList.forEach(System.out::println);
    }
    /**
     * 使用LambdaQueryWrapper组装
     */
    @Test
    public void selectUser05(){
        String t_name = "n";
        Integer age = null;
        Integer ages = 20;
        LambdaQueryWrapper<User> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        lambdaQueryWrapper.like(StringUtils.isNotBlank(t_name),User::getName,t_name)
                .ge(age != null,User::getAge,age)
                .le(ages != null,User::getAge,ages);
        List<User> userList = userMapper.selectList(lambdaQueryWrapper);
        userList.forEach(System.out::println);
    }
    /**
     *
     */
    @Test
    public void updateUser03(){
        LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        lambdaUpdateWrapper.like(User::getName,"a")
                .and(i ->i.gt(User::getAge,20).or().isNull(User::getEmail));
        lambdaUpdateWrapper.set(User::getName,"老王").set(User::getEmail,"666@qq.com");
        int update = userMapper.update(null, lambdaUpdateWrapper);
        System.out.println(update);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸭鸭老板

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值