最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

我們在開發(fā)應(yīng)用時,在某些應(yīng)用場景下查詢有時需要排除某些字段,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()+",當(dāng)前頁:"+iPage.getCurrent());
List<User> users= iPage.getRecords();
users.forEach(System.out::println);
}

1.3測試結(jié)果

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.具體方法內(nèi)容:

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接口有一個關(guān)鍵方法,也就意味著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()+",當(dāng)前頁:"+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,當(dāng)前頁: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,當(dāng)前頁:6

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

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

相關(guān)文章

  • 解決Feign獲取異常信息的處理方案

    解決Feign獲取異常信息的處理方案

    這篇文章主要介紹了解決Feign獲取異常信息的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 淺談在Spring中如何使用數(shù)據(jù)源(DBCP、C3P0、JNDI)

    淺談在Spring中如何使用數(shù)據(jù)源(DBCP、C3P0、JNDI)

    這篇文章主要介紹了淺談在Spring中如何使用數(shù)據(jù)源(DBCP、C3P0、JNDI),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 關(guān)于pytorch相關(guān)部分矩陣變換函數(shù)的問題分析

    關(guān)于pytorch相關(guān)部分矩陣變換函數(shù)的問題分析

    這篇文章主要介紹了pytorch相關(guān)部分矩陣變換函數(shù),包括tensor維度順序變換BCHW順序的調(diào)整,矩陣乘法相關(guān)函數(shù),矩陣乘,點乘,求取矩陣對角線元素或非對角線元素的問題,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • java實現(xiàn)任意矩陣Strassen算法

    java實現(xiàn)任意矩陣Strassen算法

    這篇文章主要介紹了java實現(xiàn)任意矩陣Strassen算法的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Spring Boot Admin 快速入門詳解

    Spring Boot Admin 快速入門詳解

    這篇文章主要介紹了SpringBoot Admin 使用指南(推薦),Spring Boot Admin 是一個管理和監(jiān)控你的 Spring Boot 應(yīng)用程序的應(yīng)用程序,非常具有實用價值,需要的朋友可以參考下
    2021-11-11
  • 最新評論

    铅山县| 元朗区| 宁阳县| 乐亭县| 濮阳县| 镇巴县| 承德县| 特克斯县| 钦州市| 年辖:市辖区| 若羌县| 会泽县| 新兴县| 年辖:市辖区| 环江| 新民市| 鄯善县| 宣威市| 兴城市| 安塞县| 宣化县| 昭觉县| 三门县| 姚安县| 克什克腾旗| 高邮市| 江北区| 迁安市| 滨州市| 门源| 舟山市| 蓝田县| 海安县| 攀枝花市| 武强县| 绥棱县| 桦川县| 涡阳县| 万安县| 如东县| 灵璧县|