SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法
SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法
寫在前面
查詢時(shí)部分字段不想給前端顯示,怎么辦?
(1)使用SELECT方法,排除字段"password"
@Override public Page<UserDO> list(String name, Integer status, Integer pageNo, Integer limit, Long adminId) throws ServiceException { QueryWrapper<UserDO> wrapper = new QueryWrapper<>(); if (!ObjectUtils.isEmpty(name)) { wrapper.like("name", name); } if (status != null) { wrapper.eq("status", status); } wrapper.select(UserDO.class, user -> !user.getColumn().equals("password") && !user.getColumn().equals("salary")); wrapper.orderByDesc("id"); return userMapper.selectPage(Page.div(pageNo, limit, UserDO.class), wrapper); } // 生成的SQL語(yǔ)句為: SELECT id,presenter,qq,wx,mail,name,id_no,id_card_front,id_card_back,phone, salt,ali_mp_open_id,wx_mp_open_id,wx_h5_open_id,wx_app_open_id,nickname, avatar_url,province,city,county,level,gmt_vip_expire,birthday,gender,gmt_last_login, last_login_ip,status,gmt_update,gmt_create FROM mcsx_user ORDER BY id DESC LIMIT ?
(2)使用SELECT方法,只顯示某些字段
@Override public Page<UserDO> list(String name, Integer status, Integer pageNo, Integer limit, Long adminId) throws ServiceException { QueryWrapper<UserDO> wrapper = new QueryWrapper<>(); if (!ObjectUtils.isEmpty(name)) { wrapper.like("name", name); } if (status != null) { wrapper.eq("status", status); } wrapper.select("id", "name", "level", "qq", "wx", "gmt_last_login"); wrapper.orderByDesc("id"); return userMapper.selectPage(Page.div(pageNo, limit, UserDO.class), wrapper); } // 生成的SQL語(yǔ)句為: SELECT id,name,level,qq,wx,gmt_last_login FROM mcsx_user ORDER BY id DESC LIMIT ?
(3)使用@TableField(exist = false),排除某些字段
注:表示當(dāng)前屬性不是數(shù)據(jù)庫(kù)的字段,但在項(xiàng)目中必須使用,這樣的話在新增/查詢等使用BEAN時(shí),MyBatis-Plus都會(huì)忽略這個(gè)屬性,所以推薦使用方法1和方法2。
@Data @ApiEntity(description = "用戶領(lǐng)域模型表") @TableName("mcsx_user") public class UserDO extends SuperDO { @ApiField(description = "推薦者") private Long presenter; @TableField(exist = false) @ApiField(description = "QQQQ號(hào)") private String qq; @TableField(exist = false) @ApiField(description = "微信號(hào)") private String wx; @ApiField(description = "電子郵箱") private String mail; @ApiField(description = "姓名") private String name; @ApiField(description = "身份證號(hào)") private String idNo; ... } // 生成的SQL語(yǔ)句為: SELECT id,presenter,mail,name,id_no,id_card_front,id_card_back,phone, salt,ali_mp_open_id,wx_mp_open_id,wx_h5_open_id,wx_app_open_id,nickname, avatar_url,province,city,county,level,gmt_vip_expire,birthday,gender,gmt_last_login, last_login_ip,status,gmt_update,gmt_create FROM mcsx_user ORDER BY id DESC LIMIT ?
mybatis-plus 查詢 queryWrapper 排除指定字段
void fun() { QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.lambda() .select(User.class, i -> !i.getProperty().equals("password")) //不查詢password字段 .eq(User::getAccount, "zhangSan"); User user = userService.getOne(queryWrapper); System.out.println(user); }
到此這篇關(guān)于SpringBoot中MyBatis-Plus 查詢時(shí)排除某些字段的操作方法的文章就介紹到這了,更多相關(guān)MyBatis-Plus 查詢時(shí)排除某些字段內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java如何通過(guò)Kerberos認(rèn)證方式連接hive
該文主要介紹了如何在數(shù)據(jù)源管理功能中適配不同數(shù)據(jù)源(如MySQL、PostgreSQL和Hive),特別是如何在SpringBoot3框架下通過(guò)Kerberos認(rèn)證與Hive進(jìn)行安全交互,文章詳細(xì)描述了Kerberos認(rèn)證過(guò)程,包括配置krb5.conf和keytab文件、處理Hadoop和Hive版本兼容性問(wèn)題2025-02-02Java實(shí)現(xiàn)獲取圖片和視頻文件的Exif信息
這篇文章將重點(diǎn)為大家介紹一下如何使用Java編程語(yǔ)言結(jié)合metadata-extractor去自動(dòng)獲取全景圖片的Exif信息,獲取照片的拍攝坐標(biāo)信息,感興趣的可以了解一下2022-11-11剖析Java中在Collection集合中使用contains和remove為什么要重寫equals
這篇文章主要介紹了Collection集合的contains和remove方法詳解remove以及相關(guān)的經(jīng)驗(yàn)技巧,通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09springboot springmvc拋出全局異常的解決方法
這篇文章主要為大家詳細(xì)介紹了springboot springmvc拋出全局異常的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06Java使用hutool實(shí)現(xiàn)文件大小的友好輸出
這篇文章主要為大家詳細(xì)介紹了Java如何使用hutool實(shí)現(xiàn)文件大小的友好輸出,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下2023-11-11Spring Boot 實(shí)現(xiàn)https ssl免密登錄(X.509 pki登錄)
這篇文章主要介紹了Spring Boot 實(shí)現(xiàn)https ssl免密登錄(X.509 pki登錄),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01springboot集成junit編寫單元測(cè)試實(shí)戰(zhàn)
在做單元測(cè)試時(shí),代碼覆蓋率常常被拿來(lái)作為衡量測(cè)試好壞的指標(biāo),本文主要介紹了springboot集成junit編寫單元測(cè)試實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02