SpringBoot中MyBatis-Plus 查詢時排除某些字段的操作方法
SpringBoot中MyBatis-Plus 查詢時排除某些字段的操作方法
寫在前面
查詢時部分字段不想給前端顯示,怎么辦?
(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語句為: 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語句為: SELECT id,name,level,qq,wx,gmt_last_login FROM mcsx_user ORDER BY id DESC LIMIT ?
(3)使用@TableField(exist = false),排除某些字段
注:表示當前屬性不是數(shù)據(jù)庫的字段,但在項目中必須使用,這樣的話在新增/查詢等使用BEAN時,MyBatis-Plus都會忽略這個屬性,所以推薦使用方法1和方法2。
@Data @ApiEntity(description = "用戶領域模型表") @TableName("mcsx_user") public class UserDO extends SuperDO { @ApiField(description = "推薦者") private Long presenter; @TableField(exist = false) @ApiField(description = "QQQQ號") private String qq; @TableField(exist = false) @ApiField(description = "微信號") private String wx; @ApiField(description = "電子郵箱") private String mail; @ApiField(description = "姓名") private String name; @ApiField(description = "身份證號") private String idNo; ... } // 生成的SQL語句為: 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 查詢時排除某些字段的操作方法的文章就介紹到這了,更多相關(guān)MyBatis-Plus 查詢時排除某些字段內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
剖析Java中在Collection集合中使用contains和remove為什么要重寫equals
這篇文章主要介紹了Collection集合的contains和remove方法詳解remove以及相關(guān)的經(jīng)驗技巧,通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09springboot springmvc拋出全局異常的解決方法
這篇文章主要為大家詳細介紹了springboot springmvc拋出全局異常的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Spring Boot 實現(xiàn)https ssl免密登錄(X.509 pki登錄)
這篇文章主要介紹了Spring Boot 實現(xiàn)https ssl免密登錄(X.509 pki登錄),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01springboot集成junit編寫單元測試實戰(zhàn)
在做單元測試時,代碼覆蓋率常常被拿來作為衡量測試好壞的指標,本文主要介紹了springboot集成junit編寫單元測試實戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02