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

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

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

查詢投影

目前我們在查詢數(shù)據(jù)的時候,什么都沒有做默認(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只是對MyBatis的增強(qiáng),如果MP實(shí)現(xiàn)不了,可以直接在DAO接口中使用MyBatis的方式實(shí)現(xiàn)

查詢條件設(shè)置

前面只使用了lt()和gt(),除了這兩個方法外,MP還封裝了很多條件對應(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);

范圍查詢

對年齡進(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é)

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

相關(guān)文章

最新評論

昌平区| 兴国县| 卫辉市| 卓资县| 城固县| 西城区| 宜兴市| 潮安县| 临高县| 浪卡子县| 富阳市| 都江堰市| 青铜峡市| 特克斯县| 松阳县| 锡林浩特市| 枞阳县| 兰溪市| 广河县| 米林县| 咸丰县| 巍山| 宁远县| 宜阳县| 明水县| 土默特左旗| 平遥县| 石阡县| 南平市| 家居| 丹巴县| 馆陶县| 三明市| 宣威市| 阿拉善左旗| 柳州市| 万全县| 沾化县| 盐津县| 格尔木市| 重庆市|