Mybatis-plus如何查詢表中指定字段(不查詢?nèi)孔侄?
查詢表中指定字段(不查詢?nèi)孔侄?
場景
Mybatis-Plus中BaseMapper提供的方法默認(rèn)查詢的是數(shù)據(jù)庫中表的所有字段,但是有時(shí)候,我們僅僅需要查詢的是表的某個(gè)字段貨主一些字段,查詢?nèi)康脑挃?shù)據(jù)量大時(shí)會(huì)出現(xiàn)效率問題,況且對(duì)于有強(qiáng)迫癥的人簡直是難以忍受!!!
解決
Mybatis-Plus中通過構(gòu)建QueryWrapper來設(shè)置select方法指定需要查詢的字段。
具體圖片
只查詢部分字段的兩種方法
mybatis-plus(后面簡稱為mp)是mybatis的增強(qiáng)版,官方稱之為 “ 只做增強(qiáng),不做修改 ”。mp將一些簡單的sql語句進(jìn)行了封裝和自動(dòng)生成,提高了效率,但是降低了性能。
那么,用mybatis可以自己寫sql,查詢語句可以自由發(fā)揮,比如可以只查詢表中的部分字段,對(duì)于mp也有兩種針對(duì)此種需求的方法,下面就來介紹:
方法1
只需要查詢出name和phone兩個(gè)字段:使用queryWrapper的select()方法指定要查詢的字段
@Test ? ? public void selectByWrapper1() { ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>(); ? ? ? ? queryWrapper.select("name", "phone").eq("age",25); ? ? ? ? List<User> users = userMapper.selectList(queryWrapper); ? ? ? ? users.forEach(System.out::println); ? ? }
方法2
查詢出除age和address外其它所有字段的數(shù)據(jù):同樣使用queryWrapper的select()方法
? ? @Test ? ? public void selectByWrapper2() { ? ? ? ? QueryWrapper<User> queryWrapper = new QueryWrapper<>(); ? ? ? ? queryWrapper.select(User.class, info -> !info.getColumn().equals("age") ? ? ? ? ? ? ? ? && !info.getColumn().equals("address")).eq("name","jack"); ? ? ? ? List<User> users = userMapper.selectList(queryWrapper); ? ? ? ? users.forEach(System.out::println); ? ? }
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Spring Boot微服務(wù)如何集成fescar解決分布式事務(wù)問題
這篇文章主要介紹了詳解Spring Boot微服務(wù)如何集成fescar解決分布式事務(wù)問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐
本文主要介紹了Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>2022-06-06Java實(shí)戰(zhàn)之晚會(huì)抽獎(jiǎng)系統(tǒng)的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Java語言編寫一個(gè)晚會(huì)抽獎(jiǎng)系統(tǒng),文中采用到的技術(shù)有Jdbc、Servlert、JavaScript、JQuery、Ajax等,感興趣的可以學(xué)習(xí)一下2022-03-03javaSystem.out.println()輸出byte[]、char[]異常的問題詳析
這篇文章主要給大家介紹了關(guān)于javaSystem.out.println()輸出byte[]、char[]異常問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看啊2019-01-01Mybatis?TypeHandler接口及繼承關(guān)系示例解析
這篇文章主要為大家介紹了Mybatis?TypeHandler接口及繼承關(guān)系示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02如何讓Jackson JSON生成的數(shù)據(jù)包含的中文以u(píng)nicode方式編碼
這篇文章主要介紹了如何讓Jackson JSON生成的數(shù)據(jù)包含的中文以u(píng)nicode方式編碼。需要的朋友可以過來參考下,希望對(duì)大家有所幫助2013-12-12Spring啟動(dòng)指定時(shí)區(qū)的兩種方法
最近項(xiàng)目啟動(dòng),時(shí)間要修改成東七區(qū)時(shí)間,本文主要介紹了Spring啟動(dòng)指定時(shí)區(qū)的兩種方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11Java實(shí)現(xiàn)經(jīng)典游戲飛機(jī)大戰(zhàn)-I的示例代碼
《飛機(jī)大戰(zhàn)-I》是一款融合了街機(jī)、競技等多種元素的經(jīng)典射擊手游。本文將利用java語言實(shí)現(xiàn)這游戲,文中采用了swing技術(shù)進(jìn)行了界面化處理,感興趣的可以了解一下2022-02-02Java實(shí)現(xiàn)一個(gè)簡單的定時(shí)器代碼解析
這篇文章主要介紹了Java實(shí)現(xiàn)一個(gè)簡單的定時(shí)器代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12