查询投影我们选择性的查询数据库列称为查询投影,接下来让我们来介绍查询投影的实现方法
查询投影的实现我们大致分为两种类型:
- 查询结果包含模型类中部分属性
package com.itheima;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.itheima.dao.UserDao;import com.itheima.domain.User;import com.itheima.domain.query.UserQuery;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import java.util.Map;@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll() { // 查询投影 // 当我们所查询的内容属于实体类中包含的属性,我们可以采用QW或LambdaQW来实现 // 我们大部分采用LambdaQW来实现,因为带有自动识别,不易出错 LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>(); // 我们采用select方法来添加查询种类,LambdaQueryWrapper采用Lambda表达式添加 lqw.select(User::getId,User::getName,User::getAge); QueryWrapper<User> lqw = new QueryWrapper<User>(); // 我们采用select方法来添加查询种类,QueryWrapper采用String添加 lqw.select("id","name","age","tel"); List<User> userList = userDao.selectList(lqw); System.out.println(userList); }}
- 查询结果包含模型类中未定义属性
package com.itheima;import com.baomidou.mybatisplus.core.conditions.Wrapper;import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;import com.itheima.dao.UserDao;import com.itheima.domain.User;import com.itheima.domain.query.UserQuery;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.List;import java.util.Map;@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll() { // 查询投影 // 未定义的属性我们只能采用QueryWrapper的String字符串来书写,例如count(*)和分组条件 QueryWrapper<User> lqw = new QueryWrapper<User>(); lqw.select("count(*) as count, tel"); // QueryWrapper提供了分组方法groupBy,参数为String类型的数据库列名 lqw.groupBy("tel"); List<Map<String, Object>> userList = userDao.selectMaps(lqw); System.out.println(userList); }}
经验总结扩展阅读
-
三亚海鲜市场该如何还价格,三亚的海鲜很贵吗?哪里可以买到便宜又新鲜的平民海鲜呢?
-
-
-
-
霍思燕 杜江霍思燕结婚9年,恩爱如热恋:所谓恩爱夫妻,全靠两人打配合
-
-
-
-
-
-
-
NANA谈健康|出现泡沫尿,是肾出现了问题吗?3种疾病确实要重视起来
-
-
女娲|“女娲补天”或许不是神话?可能发生于上古文明,补的也许是虫洞
-
-
-
为什么国产的有些电影评分那么低明星的酬劳却是那么多?
-
-
-
2022年9月19日是拜观音吉日吗 2022年9月19日适合拜观音吗