亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

mybatis-plus 查詢時排除字段方法的兩種方法

 更新時間:2023年09月04日 10:13:51   作者:lin000_0  
我們在開發(fā)應用時,在某些應用場景下查詢有時需要排除某些字段,本文主要介紹了兩種方法,具有一定的參考價值,感興趣的可以了解一下

我們在開發(fā)應用時,在某些應用場景下查詢有時需要排除某些字段,mybatis-plus主要提供了以下兩種方式

1.通過@TableField()

1.1準備User類

@Data
public class User extends Model<User> {
private Long id;
private String name;
private Integer age;
private String email;
@TableField(exist = false)
private int deleted;
}

1.2 測試方法

@Test
public void testQueryPage(){
QueryWrapper<User> wrapper= new QueryWrapper<User>();
wrapper.ne("age",200) ;
Page<User> page= new Page<User>(6,20,true);
IPage<User> iPage= userMapper.selectPage(page,wrapper);
System.out.println("總頁數(shù):"+iPage.getPages()+",總記錄數(shù):"+iPage.getTotal()+",當前頁:"+iPage.getCurrent());
List<User> users= iPage.getRecords();
users.forEach(System.out::println);
}

1.3測試結果

2022-10-10 11:18:10.901 DEBUG 23728 --- [ main] c.m.s.mapper.UserMapper.selectPage : ==> Preparing: SELECT id,name,age,email FROM user WHERE (age <> ?) LIMIT ?,?

2022-10-10 11:18:10.901 DEBUG 23728 --- [ main] c.m.s.mapper.UserMapper.selectPage : ==> Parameters: 200(Integer), 100(Long), 20(Long)

2022-10-10 11:18:10.911 DEBUG 23728 --- [ main] c.m.s.mapper.UserMapper.selectPage : <== Total: 14

2.通過querywrapper中的select方法來排除

2.1.具體方法內容:

public QueryWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
super.setEntityClass(entityClass);
this.sqlSelect.setStringValue(TableInfoHelper.getTableInfo(this.getEntityClass()).chooseSelect(predicate));
return (QueryWrapper)this.typedThis;
}

2.2.這里的Predicate接口有一個關鍵方法,也就意味著test方法返回ture才會展現(xiàn)這個

/**
* Evaluates this predicate on the given argument.
*
* @param t the input argument
* @return {@code true} if the input argument matches the predicate,
* otherwise {@code false}
*/
boolean test(T t);

下面我們來按排這個方法來準備

2.3 準備User類

@Data
public class User extends Model<User> {
private Long id;
private String name;
private Integer age;
private String email;
private int deleted;
}

2.4 準備測方法

@Test
public void testQueryPage(){
QueryWrapper<User> wrapper= new QueryWrapper<User>();
wrapper.ne("age",200).select(User.class,info -> !info.getColumn().equals("deleted"));
Page<User> page= new Page<User>(6,20,true);
IPage<User> iPage= userMapper.selectPage(page,wrapper);
System.out.println("總頁數(shù):"+iPage.getPages()+",總記錄數(shù):"+iPage.getTotal()+",當前頁:"+iPage.getCurrent());
List<User> users= iPage.getRecords();
users.forEach(System.out::println);
}

2.5運行l(wèi)og

2022-10-10 11:22:04.720 DEBUG 20580 --- [ main] c.m.s.m.UserMapper.selectPage_mpCount : ==> Preparing: SELECT COUNT(*) AS total FROM user WHERE deleted = 0 AND (age <> ?)

2022-10-10 11:22:04.750 DEBUG 20580 --- [ main] c.m.s.m.UserMapper.selectPage_mpCount : ==> Parameters: 200(Integer)

2022-10-10 11:22:04.780 DEBUG 20580 --- [ main] c.m.s.m.UserMapper.selectPage_mpCount : <== Total: 1

2022-10-10 11:22:04.791 DEBUG 20580 --- [ main] c.m.s.mapper.UserMapper.selectPage : ==> Preparing: SELECT id,name,age,email FROM user WHERE deleted=0 AND (age <> ?) LIMIT ?,?

2022-10-10 11:22:04.792 DEBUG 20580 --- [ main] c.m.s.mapper.UserMapper.selectPage : ==> Parameters: 200(Integer), 100(Long), 20(Long)

2022-10-10 11:22:04.796 DEBUG 20580 --- [ main] c.m.s.mapper.UserMapper.selectPage : <== Total: 13

總頁數(shù):6,總記錄數(shù):113,當前頁:6

User(id=197, name=zouli197, age=227, email=zoulinlin197@163.com, deleted=0)

User(id=198, name=zouli198, age=228, email=zoulinlin198@163.com, deleted=0)

User(id=199, name=zouli199, age=229, email=zoulinlin199@163.com, deleted=0)

User(id=310, name=zouli10, age=40, email=zoulinlin10@163.com, deleted=0)

如果沒有按照上面說明的方式來進行,正常測試log會有deleted字段查詢

2022-10-10 11:24:33.069 DEBUG 18760 --- [ main] c.m.s.m.UserMapper.selectPage_mpCount : ==> Preparing: SELECT COUNT(*) AS total FROM user WHERE deleted = 0 AND (age <> ?)

2022-10-10 11:24:33.089 DEBUG 18760 --- [ main] c.m.s.m.UserMapper.selectPage_mpCount : ==> Parameters: 200(Integer)

2022-10-10 11:24:33.119 DEBUG 18760 --- [ main] c.m.s.m.UserMapper.selectPage_mpCount : <== Total: 1

2022-10-10 11:24:33.129 DEBUG 18760 --- [ main] c.m.s.mapper.UserMapper.selectPage : ==> Preparing: SELECT id,name,age,email,deleted FROM user WHERE deleted=0 AND (age <> ?) LIMIT ?,?

2022-10-10 11:24:33.129 DEBUG 18760 --- [ main] c.m.s.mapper.UserMapper.selectPage : ==> Parameters: 200(Integer), 100(Long), 20(Long)

2022-10-10 11:24:33.129 DEBUG 18760 --- [ main] c.m.s.mapper.UserMapper.selectPage : <== Total: 13

總頁數(shù):6,總記錄數(shù):113,當前頁:6

User(id=197, name=zouli197, age=227, email=zoulinlin197@163.com, deleted=0)

 到此這篇關于mybatis-plus 查詢時排除字段方法的兩種方法的文章就介紹到這了,更多相關mybatis-plus 查詢排除字段內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • JAVA實現(xiàn)對阿里云DNS的解析管理

    JAVA實現(xiàn)對阿里云DNS的解析管理

    本文主要介紹了JAVA實現(xiàn)對阿里云DNS的解析管理,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java智能問答圖靈機器人AI接口(聚合數(shù)據(jù))

    java智能問答圖靈機器人AI接口(聚合數(shù)據(jù))

    這篇文章主要介紹了java智能問答圖靈機器人AI接口(聚合數(shù)據(jù)),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Spring?Boot統(tǒng)一處理全局異常的實戰(zhàn)教程

    Spring?Boot統(tǒng)一處理全局異常的實戰(zhàn)教程

    最近在做項目時需要對異常進行全局統(tǒng)一處理,所以下面這篇文章主要給大家介紹了關于Spring?Boot統(tǒng)一處理全局異常的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • Java調度線程池ScheduledThreadPoolExecutor不執(zhí)行問題分析

    Java調度線程池ScheduledThreadPoolExecutor不執(zhí)行問題分析

    最近項目上反饋某個重要的定時任務突然不執(zhí)行了,很頭疼,開發(fā)環(huán)境和測試環(huán)境都沒有出現(xiàn)過這個問題。定時任務采用的是ScheduledThreadPoolExecutor,后來一看代碼發(fā)現(xiàn)踩了一個大坑。本文就來和大家聊聊這次的踩坑記錄與解決方法,需要的可以參考一下
    2023-03-03
  • springboot多數(shù)據(jù)源配置及切換的示例代碼詳解

    springboot多數(shù)據(jù)源配置及切換的示例代碼詳解

    這篇文章主要介紹了springboot多數(shù)據(jù)源配置及切換,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java實戰(zhàn)項目之斗地主和斗牛游戲的實現(xiàn)

    Java實戰(zhàn)項目之斗地主和斗牛游戲的實現(xiàn)

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實現(xiàn)一個斗地主和一個斗牛游戲,大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • java yaml轉properties工具類方式

    java yaml轉properties工具類方式

    這篇文章主要介紹了java yaml轉properties工具類方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 詳解SpringBoot中@ConditionalOnClass注解的使用

    詳解SpringBoot中@ConditionalOnClass注解的使用

    這篇文章主要和大家詳細介紹一下springboot中@ConditionalOnClass注解的用法,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2022-08-08
  • Java中的Pair詳細

    Java中的Pair詳細

    這篇文章主要介紹Java中的很有意思的Pair,下面文章會以Pair用法展開,感興趣的小伙伴可以參考下面文章的具體內容
    2021-10-10
  • springboot+maven快速構建項目的示例代碼

    springboot+maven快速構建項目的示例代碼

    本篇文章主要介紹了springboot+maven快速構建項目的示例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論