條件構(gòu)造器select方法介紹
根據(jù)業(yè)務(wù)需求,有時(shí)候只需要返回特定的幾個(gè)數(shù)據(jù)表字段,我們通過條件構(gòu)造器的select方法可以指定;
還有一種情況,假如數(shù)據(jù)庫字段很多的時(shí)候,我們要排除某幾個(gè)字段,其他字段返回的時(shí)候,select方法也支持排除某些字段,查詢其他的;
最后還有一種情況,我們搞分組聚合函數(shù)的時(shí)候,可以使用select方法,返回聚合函數(shù)執(zhí)行后的數(shù)據(jù)字段;
實(shí)例一:查找薪水大于3500 名字里有“小”的 員工 (只顯示編號(hào)和姓名)
@Test public void selectByQueryWrapper7(){ QueryWrapper<Employee> queryWrapper=new QueryWrapper(); // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query(); queryWrapper.select("id","name").gt("salary",3500).like("name","小"); List<Employee> employeeList = employeeMapper.selectList(queryWrapper); System.out.println(employeeList); }
實(shí)例二:查找薪水大于3500 名字里有“小”的 員工 (排除出生日期和性別)
@Test public void selectByQueryWrapper8(){ QueryWrapper<Employee> queryWrapper=new QueryWrapper(); // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query(); queryWrapper .select(Employee.class,fieldInfo->!fieldInfo.getColumn().equals("birthday")&&!fieldInfo.getColumn().equals("gender")) .gt("salary",3500) .like("name","小"); List<Employee> employeeList = employeeMapper.selectList(queryWrapper); System.out.println(employeeList); }
實(shí)例三:查詢每個(gè)部門的平均薪資
sql實(shí)現(xiàn):
SELECT departmentId,AVG(salary) AS avg_salary FROM t_employee GROUP BY department_id;
@Test public void selectByQueryWrapper9(){ QueryWrapper<Employee> queryWrapper=new QueryWrapper(); // QueryWrapper<Employee> queryWrapper2=Wrappers.<Employee>query(); queryWrapper .select("department_id","AVG(salary) AS avg_salary") .groupBy("department_id"); List<Employee> employeeList = employeeMapper.selectList(queryWrapper); System.out.println(employeeList); }