最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis-Plus查詢投影與查詢條件設(shè)置過程

 更新時(shí)間:2025年11月04日 08:51:09   作者:兔子隊(duì)列  
文章介紹了查詢投影、聚合查詢、分組查詢、分頁查詢、排序查詢和查詢條件設(shè)置等內(nèi)容,涵蓋了如何使用MyBatis Plus(MP)進(jìn)行各種查詢操作,包括lambda表達(dá)式、范圍匹配、模糊匹配、空判定、包含性匹配、分組、排序等

查詢投影

目前我們?cè)诓樵償?shù)據(jù)的時(shí)候,什么都沒有做默認(rèn)就是查詢表中所有字段的內(nèi)容

而查詢投影即不查詢所有字段,只查詢出指定內(nèi)容的數(shù)據(jù)

查詢指定字段

  • lambda格式

  • 非lambda格式

//查詢指定字段
        //SELECT id,name,age FROM person
        //LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
        //lqw.select(Person::getId,Person::getName,Person::getAge);
        QueryWrapper<Person> lqw = new QueryWrapper<Person>();
        lqw.select("id","name","age","tel");
        List<Person> personList = personDao.selectList(lqw);
        System.out.println(personList);

聚合查詢

聚合函數(shù)查詢,完成count、max、min、avg、sum的使用

  • count:總記錄數(shù)
  • max:最大值
  • min:最小值
  • avg:平均值
  • sum:求和

        QueryWrapper<Person> lqw = new QueryWrapper<Person>();
        //lqw.select("count(*) as count");
        //SELECT count(*) as count FROM user
        //lqw.select("max(age) as maxAge");
        //SELECT max(age) as maxAge FROM user
        //lqw.select("min(age) as minAge");
        //SELECT min(age) as minAge FROM user
        //lqw.select("sum(age) as sumAge");
        //SELECT sum(age) as sumAge FROM user
        lqw.select("avg(age) as avgAge");
        //SELECT avg(age) as avgAge FROM user
        List<Map<String, Object>> personList = personDao.selectMaps(lqw);
        System.out.println(personList);

分組查詢

//分組查詢
        QueryWrapper<Person> lqw = new QueryWrapper<Person>();
        lqw.select("count(*) as count,tel");
        lqw.groupBy("tel");
        List<Map<String, Object>> personList = personDao.selectMaps(lqw);
        System.out.println(personList);

注意:

聚合與分組查詢,無法使用lambda表達(dá)式來完成

MP只是對(duì)MyBatis的增強(qiáng),如果MP實(shí)現(xiàn)不了,可以直接在DAO接口中使用MyBatis的方式實(shí)現(xiàn)

查詢條件設(shè)置

前面只使用了lt()和gt(),除了這兩個(gè)方法外,MP還封裝了很多條件對(duì)應(yīng)的方法:

  • 范圍匹配(> 、 = 、between)
  • 模糊匹配(like)
  • 空判定(null)
  • 包含性匹配(in)
  • 分組(group)
  • 排序(order)
  • ……

等值查詢

  • 根據(jù)用戶名和密碼查詢用戶信息

        LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
        lqw.eq(Person::getName, "李四").eq(Person::getPassword, "3256");
        Person loginPerson = personDao.selectOne(lqw);
        System.out.println(loginPerson);

范圍查詢

對(duì)年齡進(jìn)行范圍查詢,使用lt()、le()、gt()、ge()、between()進(jìn)行范圍查詢

        LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
        lqw.between(Person::getAge,13,17);
        List<Person> personList = personDao.selectList(lqw);
        System.out.println(personList);

模糊查詢

查詢表中name屬性的值以T開頭的用戶信息,使用like進(jìn)行模糊查詢

        LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<Person>();
        lqw.likeRight(Person::getName,"T");
        List<Person> personList = personDao.selectList(lqw);
        System.out.println(personList);

排序查詢

查詢所有數(shù)據(jù),然后按照id降序

        LambdaQueryWrapper<Person> lqw = new LambdaQueryWrapper<>();
        lqw.orderBy(true,false, Person::getId);
        List<Person> personList = personDao.selectList(lqw);
        System.out.println(personList);

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

仙居县| 阜城县| 遵义市| 阿合奇县| 诏安县| 监利县| 江北区| 泰州市| 广饶县| 广平县| 汕尾市| 利川市| 黑山县| 新津县| 绍兴县| 都昌县| 云和县| 武鸣县| 承德市| 谷城县| 阳曲县| 新密市| 博野县| 抚州市| 阳山县| 辉南县| 广安市| 格尔木市| 绥江县| 营口市| 南陵县| 固镇县| 邵阳市| 阳山县| 丰都县| 綦江县| 宜宾市| 余庆县| 赤水市| 平乐县| 永顺县|