oracle竖列的数据怎么变成一行
258
2022-09-05
[MyBatisPlus]DQL编程控制②(查询投影、查询条件)
文章目录
查询投影
查询指定字段聚合查询分组查询
查询条件
等值查询范围查询模糊查询排序查询
查询投影
查询指定字段
目前我们在查询数据的时候,什么都没有做默认就是查询表中所有字段的内容,我们所说的查询投影即不查询所有字段,只查询出指定内容的数据。
具体如何来实现?
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper
select(…)方法用来设置查询的字段列,可以设置多个,最终的sql语句为:
SELECT id,name,age FROM user
如果使用的不是lambda,就需要手动指定字段
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ QueryWrapper
最终的sql语句为:SELECT id,name,age,tel FROM user
聚合查询
需求:聚合函数查询,完成count、max、min、avg、sum的使用count:总记录数max:最大值min:最小值avg:平均值sum:求和
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ QueryWrapper
为了在做结果封装的时候能够更简单,我们将上面的聚合函数都起了个名称,方面后期来获取这些数据
分组查询
需求:分组查询,完成 group by的查询使用
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ QueryWrapper
groupBy为分组,最终的sql语句为
SELECT count(*) as count,tel FROM user GROUP BY
注意:
聚合与分组查询,无法使用lambda表达式来完成MP只是对MyBatis的增强,如果MP实现不了,我们可以直接在DAO接口中使用MyBatis的方式实现
查询条件
前面我们只使用了lt()和gt(),除了这两个方法外,MP还封装了很多条件对应的方法,这一节我们重点把MP提供的查询条件方法进行学习下。
MP的查询条件有很多:
范围匹配(> 、 = 、between)模糊匹配(like)空判定(null)包含性匹配(in)分组(group)排序(order)……
等值查询
需求:根据用户名和密码查询用户信息
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper
eq(): 相当于=,对应的sql语句为
SELECT id,name,password,age,tel FROM user WHERE (name = ? AND password = ?)
selectList:查询结果为多个或者单个selectOne:查询结果为单个
范围查询
需求:对年龄进行范围查询,使用lt()、le()、gt()、ge()、between()进行范围查询
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper
gt():大于(>)ge():大于等于(>=)lt():小于(<)lte():小于等于(<=)between():between ? and ?
模糊查询
需求:查询表中name属性的值以J开头的用户信息,使用like进行模糊查询
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper
like():前后加百分号,如 %J%likeLeft():前面加百分号,如 %JlikeRight():后面加百分号,如 J%
排序查询
需求:查询所有数据,然后按照id降序
@SpringBootTestclass Mybatisplus02DqlApplicationTests { @Autowired private UserDao userDao; @Test void testGetAll(){ LambdaQueryWrapper
除了上面演示的这种实现方式,还有很多其他的排序方法可以被调用,如图:
orderBy排序
condition:条件,true则添加排序,false则不添加排序isAsc:是否为升序,true升序,false降序columns:排序字段,可以有多个
orderByAsc/Desc(单个column):按照指定字段进行升序/降序orderByAsc/Desc(多个column):按照多个字段进行升序/降序orderByAsc/Desc
condition:条件,true添加排序,false不添加排序多个columns:按照多个字段进行排序
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~