MyBatis-Plus_查询进阶05

查询专栏:select语句中不列出全部字段

1. 第一种形式

  • 通过queryWrapper调用select方法,在select方法中添加需要查询的列
/**
     * 1. 名字包含雨并且年齡小于40
     * sql:name like '%雨%' and age < 40
     */
    @Test
    public void selectByWrapperSupper() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//        queryWrapper.like("name", "雨").lt("age", 40);
        queryWrapper.select("id", "name")
                    .like("name", "雨")
                    .lt("age", 40);

        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }
    /*
      sql形式:SELECT id,name FROM user WHERE name LIKE ? AND age < ?
     这种情况,你查询什么列,如果有值就会查询出来,没查询的列的值默认为null
     */

2. 第二种形式

  • 通过排除列操作
  • !tableFieldInfo.getColumn()
    .equals(“create_time”)
    这句话的意思是,create_time这列不查询
    /**
     * 2. 名字包含雨并且年齡小于40
     * sql:name like '%雨%' and age < 40
     */
    @Test
    public void selectByWrapperSupper2() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
//        queryWrapper.like("name", "雨").lt("age", 40);
        queryWrapper.like("name", "雨")
                    .lt("age", 40)
                    .select(User.class, tableFieldInfo -> !tableFieldInfo.getColumn()
                    .equals("create_time")
                     && !tableFieldInfo.getColumn()
                    .equals("manager_id"));

        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }
    /*
      sql形式:SELECT id,name FROM user WHERE name LIKE ? AND age < ?
     */

想学习更多微服务、分布式、中间件、数据库、项目快速构建等系列技术
请访问http://gblfy.com
让我们一起进步!!!

猜你喜欢

转载自blog.csdn.net/weixin_40816738/article/details/93381272