Mybatis Plus select 實現(xiàn)只查詢部分字段
Mybatis Plus select 查詢部分字段
Mybatis Plus select語句默認查詢所有字段,如需要指定字段查詢,則需使用 QueryWrapper的select方法。
select
select(String... sqlSelect) select(Predicate<TableFieldInfo> predicate) select(Class<T> entityClass, Predicate<TableFieldInfo> predicate)
設置查詢字段
說明:
以上方法分為兩類。
第二類方法為:過濾查詢字段(主鍵除外),入?yún)⒉话?class 的調(diào)用前需要wrapper內(nèi)的entity屬性有值! 這兩類方法重復調(diào)用以最后一次為準
例:指定查詢主鍵,名字,年齡字段
select("id", "name", "age")
例: 查詢以test開頭的屬性
select(i ‐> i.getProperty().startsWith("test"))
例:查詢User對象中出除manager_id和create_time外其它所有字段的數(shù)據(jù)
select(User.class, info ‐> !info.getColumn().equals("manager_id")
&& !info.getColumn().equals("create_time"))
MyBatis-Plus之select、delete
一、Mybatis-Plus之查詢操作
1、查詢操作常用API
根據(jù)ID查詢測試代碼如下:
//測試根據(jù)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);
}
測試結果如下:

2、分頁查詢
分頁在項目里使用得十分多,平時一般是使用pageHelpr插件進行分頁,還可以使用原始的limit進行分頁;MP其實內(nèi)置了分頁插件,使用步驟如下:
2.1、在配置類里注冊分頁插件

//注冊分頁插件
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
2.2、直接使用MP內(nèi)置的Page對象進行分頁,測試代碼如下
@Test
public void testPage(){
//參數(shù)1:當前頁,參數(shù)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());
}
測試結果如下:

二、Mybatis-Plus之刪除操作
1、物理刪除操作常用API
根據(jù)ID刪除測試代碼如下:
//測試刪除
@Test
public void testDeleteById(){
userMapper.deleteById(1L);
}
測試結果如下:

根據(jù)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);
}
測試結果如下:

2、邏輯刪除
在工作中有時需要使用到邏輯刪除,邏輯刪除即數(shù)據(jù)在數(shù)據(jù)庫里沒有被移除,而是通過一個變量來讓它失效;一般管理員可以查看被邏輯刪除的數(shù)據(jù),這樣可防止數(shù)據(jù)的丟失,類似于回收站功能
MP邏輯刪除使用步驟如下:
2.1、在數(shù)據(jù)庫里增加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、測試邏輯刪除



以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java集合Collection實現(xiàn)類解析ArrayList?LinkedList及Vector
這篇文章主要為大家介紹了java集合Collection實現(xiàn)類解析ArrayList?LinkedList及Vector,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
在springboot中使用注解將值注入?yún)?shù)的操作
這篇文章主要介紹了在springboot中使用注解將值注入?yún)?shù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
Java嵌套for循環(huán)的幾種常見優(yōu)化方案
這篇文章主要給大家介紹了關于Java嵌套for循環(huán)的幾種常見優(yōu)化,在Java中優(yōu)化嵌套for循環(huán)可以通過以下幾種方式來提高性能和效率,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-07-07
Mybatis?在?insert?插入操作后返回主鍵?id的操作方法
這篇文章主要介紹了Mybatis?在?insert?插入操作后返回主鍵?id的操作方法,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-12-12

