mybatis plus select 查詢部分字段
mybatis plus select語句默認查詢所有字段,如需要指定字段查詢,則需使用 querywrapper的select方法。
select
1
2
3
|
select(string... sqlselect) select(predicate<tablefieldinfo> predicate) select( class <t> entityclass, predicate<tablefieldinfo> predicate) |
設置查詢字段
說明:
以上方法分為兩類。
第二類方法為:過濾查詢字段(主鍵除外),入參不包含 class 的調用前需要wrapper內的entity屬性有值! 這兩類方法重復調用以最后一次為準
例:指定查詢主鍵,名字,年齡字段
1
|
select( "id" , "name" , "age" ) |
例: 查詢以test開頭的屬性
1
|
select(i ‐> i.getproperty().startswith( "test" )) |
例:查詢user對象中出除manager_id和create_time外其它所有字段的數據
1
2
|
select(user. class , info ‐> !info.getcolumn().equals( "manager_id" ) && !info.getcolumn().equals( "create_time" )) |
mybatis-plus之select、delete
一、mybatis-plus之查詢操作
1、查詢操作常用api
根據id查詢測試代碼如下:
1
2
3
4
5
6
|
//測試根據id查詢 @test public void testselectbyid(){ user user = usermapper.selectbyid(2l); system.out.println(user); } |
測試結果如下:
批量查詢測試代碼如下:
1
2
3
4
5
6
|
//測試批量查詢 @test public void testselectbybatchids(){ list<user> users = usermapper.selectbatchids(arrays.aslist( 1 , 2 , 3 )); users.foreach(system.out::println); } |
測試結果如下:
使用map進行條件查詢測試代碼如下:
1
2
3
4
5
6
7
8
9
10
|
//按條件查詢之使用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其實內置了分頁插件,使用步驟如下:
2.1、在配置類里注冊分頁插件
1
2
3
4
5
|
//注冊分頁插件 @bean public paginationinterceptor paginationinterceptor(){ return new paginationinterceptor(); } |
2.2、直接使用mp內置的page對象進行分頁,測試代碼如下
1
2
3
4
5
6
7
8
9
10
11
|
@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()); } |
測試結果如下:
二、mybatis-plus之刪除操作
1、物理刪除操作常用api
根據id刪除測試代碼如下:
1
2
3
4
5
|
//測試刪除 @test public void testdeletebyid(){ usermapper.deletebyid(1l); } |
測試結果如下:
根據id批量刪除測試代碼如下:
1
2
3
4
5
|
//通過id批量刪除 @test public void testdeletebatchid(){ usermapper.deletebatchids(arrays.aslist(2l,3l)); } |
測試結果如下:
使用map進行條件刪除測試代碼如下:
1
2
3
4
5
6
|
@test public void testdeletemap(){ map map = new hashmap(); map.put( "name" , "哈利油" ); usermapper.deletebymap(map); } |
測試結果如下:
2、邏輯刪除
在工作中有時需要使用到邏輯刪除,邏輯刪除即數據在數據庫里沒有被移除,而是通過一個變量來讓它失效;一般管理員可以查看被邏輯刪除的數據,這樣可防止數據的丟失,類似于回收站功能
mp邏輯刪除使用步驟如下:
2.1、在數據庫里增加deleted字段
2.2、在實體類對應的屬性上加上@tablelogic注解
2.3、在配置類里注冊邏輯刪除組件
1
2
3
4
5
|
//注冊邏輯刪除組件 @bean public isqlinjector sqlinjector(){ return new logicsqlinjector(); } |
2.4、在application.properties文件里配置已刪除跟未刪除用什么來表示
1
2
|
mybatis-plus.global-config.db-config.logic-delete-value= 1 mybatis-plus.global-config.db-config.logic-not-delete-value= 0 |
2.5、測試邏輯刪除
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/qq_38232816/article/details/109283507