您好,登錄后才能下訂單哦!
小編給大家分享一下Mybatis Plus select如何實現只查詢部分字段,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Mybatis Plus select語句默認查詢所有字段,如需要指定字段查詢,則需使用 QueryWrapper的select方法。
select(String... sqlSelect) select(Predicate<TableFieldInfo> predicate) select(Class<T> entityClass, Predicate<TableFieldInfo> predicate)
說明:
以上方法分為兩類。
第二類方法為:過濾查詢字段(主鍵除外),入參不包含 class 的調用前需要wrapper內的entity屬性有值! 這兩類方法重復調用以最后一次為準
例:指定查詢主鍵,名字,年齡字段
select("id", "name", "age")
例: 查詢以test開頭的屬性
select(i ‐> i.getProperty().startsWith("test"))
例:查詢User對象中出除manager_id和create_time外其它所有字段的數據
select(User.class, info ‐> !info.getColumn().equals("manager_id") && !info.getColumn().equals("create_time"))
根據ID查詢測試代碼如下:
//測試根據ID查詢 @Test public void testSelectById(){ User user = userMapper.selectById(2L); System.out.println(user); }
測試結果如下:
批量查詢測試代碼如下:
//測試批量查詢 @Test public void testSelectByBatchIds(){ List<User> users = userMapper.selectBatchIds(Arrays.asList(1, 2, 3)); users.forEach(System.out::println); }
測試結果如下:
使用map進行條件查詢測試代碼如下:
//按條件查詢之使用map操作 @Test public void testSelectByMap(){ Map map = new HashMap(); map.put("name","哈利油"); map.put("age",18); List list = userMapper.selectByMap(map); list.forEach(System.out::println); }
測試結果如下:
分頁在項目里使用得十分多,平時一般是使用pageHelpr插件進行分頁,還可以使用原始的limit進行分頁;MP其實內置了分頁插件,使用步驟如下:
2.1、在配置類里注冊分頁插件
//注冊分頁插件 @Bean public PaginationInterceptor paginationInterceptor(){ return new PaginationInterceptor(); }
2.2、直接使用MP內置的Page對象進行分頁,測試代碼如下
@Test public void testPage(){ //參數1:當前頁,參數2:頁面大小 Page<User> page = new Page<>(1,5); //用于排序 page.setDesc("id"); IPage<User> userIPage = userMapper.selectPage(page, null); userIPage.getRecords().forEach(System.out::println); System.out.println(userIPage.getTotal()); }
測試結果如下:
根據ID刪除測試代碼如下:
//測試刪除 @Test public void testDeleteById(){ userMapper.deleteById(1L); }
測試結果如下:
根據ID批量刪除測試代碼如下:
//通過id批量刪除 @Test public void testDeleteBatchId(){ userMapper.deleteBatchIds(Arrays.asList(2L,3L)); }
測試結果如下:
使用map進行條件刪除測試代碼如下:
@Test public void testDeleteMap(){ Map map = new HashMap(); map.put("name","哈利油"); userMapper.deleteByMap(map); }
測試結果如下:
在工作中有時需要使用到邏輯刪除,邏輯刪除即數據在數據庫里沒有被移除,而是通過一個變量來讓它失效;一般管理員可以查看被邏輯刪除的數據,這樣可防止數據的丟失,類似于回收站功能
MP邏輯刪除使用步驟如下:
2.1、在數據庫里增加deleted字段
2.2、在實體類對應的屬性上加上@TableLogic注解
2.3、在配置類里注冊邏輯刪除組件
//注冊邏輯刪除組件 @Bean public ISqlInjector sqlInjector(){ return new LogicSqlInjector(); }
2.4、在application.properties文件里配置已刪除跟未刪除用什么來表示
mybatis-plus.global-config.db-config.logic-delete-value=1 mybatis-plus.global-config.db-config.logic-not-delete-value=0
2.5、測試邏輯刪除
以上是“Mybatis Plus select如何實現只查詢部分字段”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。