Mybatis-plus如何查詢表中指定字段(不查詢全部字段)
查詢表中指定字段(不查詢全部字段)
場景
Mybatis-Plus中BaseMapper提供的方法默認查詢的是數據庫中表的所有字段,但是有時候,我們僅僅需要查詢的是表的某個字段貨主一些字段,查詢全部的話數據量大時會出現效率問題,況且對於有強迫癥的人簡直是難以忍受!!!
解決
Mybatis-Plus中通過構建QueryWrapper來設置select方法指定需要查詢的字段。
具體圖片
隻查詢部分字段的兩種方法
mybatis-plus(後面簡稱為mp)是mybatis的增強版,官方稱之為 “ 隻做增強,不做修改 ”。mp將一些簡單的sql語句進行瞭封裝和自動生成,提高瞭效率,但是降低瞭性能。
那麼,用mybatis可以自己寫sql,查詢語句可以自由發揮,比如可以隻查詢表中的部分字段,對於mp也有兩種針對此種需求的方法,下面就來介紹:
方法1
隻需要查詢出name和phone兩個字段:使用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外其它所有字段的數據:同樣使用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); }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Mybatis-Plus select不列出全部字段的方法
- Mybatis Plus select 實現隻查詢部分字段
- MyBatis-Plus實現邏輯刪除的示例代碼
- mybatis plus實現條件查詢
- 淺談MyBatis執行SQL的兩種方式