MyBatis-Plus Wrapper条件构造器筛选不必要的字段

x33g5p2x  于2021-12-19 转载在 其他  
字(0.8k)|赞(0)|评价(0)|浏览(244)

一、引言

一天一眨眼就过去了,真是光阴似箭日月如梭呀。

这个MP的Wrapper默认查询是查询全部的列,但是小编的需求是需要查询某几个列即可。

当然MP也是提供了解决办法的。

二、解决办法

/**
     * 名字包含雨并且年龄小于40
     * <p>
     * 只显示id、name 两列
     */
    @Test
    public void selectByWrapper1() {
        QueryWrapper<User> wrapper = new QueryWrapper();
        wrapper.like("name", "雨").lt("age", 40)
            .select("id","name");
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

    /**
     * 名字包含雨并且年龄小于40
     * <p>
     * 除了create_time、manager_id 其他列都显示
     */
    @Test
    public void selectByWrapper2() {
        QueryWrapper<User> wrapper = new QueryWrapper();
        wrapper.like("name", "雨").lt("age", 40)
                .select(User.class,i -> !i.getColumn().equals("create_time")
                && !i.getColumn().equals("manager_id"));
        List<User> users = userMapper.selectList(wrapper);
        users.forEach(System.out::println);
    }

 

相关文章