查询投影我们选择性的查询数据库列称为查询投影,接下来让我们来介绍查询投影的实现方法
查询投影的实现我们大致分为两种类型:
- 查询结果包含模型类中部分属性
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); }}
经验总结扩展阅读
-
-
-
-
一辈子是一件太漫长的事情|愿意为你做这6件事的男人,值得你爱他一辈子!
-
老阿姨|女孩子有这“3脸型”,请放过“刘海儿”,否则当心被叫“老阿姨”
-
中国不容错过的这几个适合旅游的好地方 中国旅游景点推荐
-
|喜欢吃的菜,第二天餐桌上一定有,有一种幸福叫婆婆宠!
-
-
2022年农历九月初一举办成人仪式吉日 2022年9月26日是举办成人仪式的黄道吉日吗
-
-
-
-
2023仪器类热门专业有哪些 就业前景比较好的专业
-
|儿女结婚之前,准亲家见面,要做到“两问、两不问”
-
也许是幼年时期的我们 也许真心爱过的我们,被失去的情感伤过。不敢继续爱了
-
-
-
-
-
硫磺硫磺皂每天用来洗脸,“皮肤”会有什么变化,看完你就懂了