MyBatis-Plus 通用IService使用詳解
一、引言
MP除了通用的Mapper還是通用的Servcie層,這也減少了相對(duì)應(yīng)的代碼工作量,把通用的接口提取到公共。其實(shí)按照MP的這種思想,可以自己也實(shí)現(xiàn)一些通用的Controller。
今天是周天,作為一名碼農(nóng)來說,這里小編提醒大家周末有空還是多出去運(yùn)動(dòng)一下。
生命在于運(yùn)動(dòng),生命誠可貴。
二、 小編瞎扯
相信有和小編一樣的朋友,在大城市獨(dú)自漂泊,感覺就憑借自己內(nèi)心那一點(diǎn)點(diǎn)的火苗,想要燃燒起來。
小編在上海這些年,不慌也不忙,從開始每天厭惡工作,到現(xiàn)在開開心心的上班,回顧自己的成長除了存款,其他倒是成長了不少。在今年小編做了自己很多想做的事,雖然錢花了,但是感覺完成了多年自己的心愿,還是很有成就感的。
所以各位程序員的小伙伴,好好享受生活、多和家人聯(lián)系溝通,過好每一天。
這一段和本章沒有任何關(guān)系。
三、IService使用
service層需要繼承IService,當(dāng)然實(shí)現(xiàn)層也要繼承對(duì)應(yīng)的實(shí)現(xiàn)類。
/**
* <p>
* 用戶 服務(wù)類
* </p>
*
* @author IT賤男
* @since 2019-06-14
*/
public interface UserService extends IService<User> {
}
/**
* <p>
* 用戶 服務(wù)實(shí)現(xiàn)類
* </p>
*
* @author IT賤男
* @since 2019-06-14
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
這里小編基本的增刪改查就不一一演示了,演示幾個(gè)特殊一點(diǎn)的方法。
getOne(),這個(gè)是方法返回結(jié)果不止一條則會(huì)拋出異常,如果想默認(rèn)取第一條結(jié)果,可以給這方法傳第二個(gè)參數(shù)為false。
@Test
public void getOne() {
User one = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getAge, 31),false);
System.out.println(one);
}
saveOrUpdateBatch(),批量新增或者修改方法,判斷ID是否存在,如果ID不存在執(zhí)行新增,如果ID存在先執(zhí)行查詢語句,查詢結(jié)果為空新增,否則修改。
@Test
public void saveOrUpdateBatch() {
User user1 = new User();
user1.setName("兔子");
user1.setAge(18);
User user2 = new User();
user2.setId(1088250446457389060L);
user2.setName("烏龜");
user2.setAge(18);
List<User> users = Arrays.asList(user1, user2);
boolean b = userService.saveOrUpdateBatch(users);
System.out.println(b);
}
接下來說一下基于lambda的相關(guān)操作
/**
* lombda查詢
*/
@Test
public void lambdaQuery(){
List<User> list = userService.lambdaQuery().eq(User::getAge, 18).list();
list.forEach(System.out::println);
}
/**
* lombda修改
*/
@Test
public void lambdaUpdate(){
boolean update = userService.lambdaUpdate().eq(User::getAge, 18).set(User::getAge, 31).update();
System.out.println(update);
}
/**
* lombda刪除
*/
@Test
public void lambdaRemoce(){
boolean remove = userService.lambdaUpdate().eq(User::getAge, 18).remove();
System.out.println(remove);
}
到此這篇關(guān)于MyBatis-Plus 通用IService使用詳解的文章就介紹到這了,更多相關(guān)MyBatis-Plus 通用IService內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
初識(shí)Spring Boot框架之Spring Boot的自動(dòng)配置
本篇文章主要介紹了初識(shí)Spring Boot框架之Spring Boot的自動(dòng)配置,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04
Java EE過濾器優(yōu)先級(jí)控制的實(shí)例解讀
通過使用@Priority注解,可以控制JavaEE應(yīng)用中過濾器的執(zhí)行順序,在上面的示例中,我們通過設(shè)置不同的優(yōu)先級(jí),實(shí)現(xiàn)了TimeFilter和LogFilter的執(zhí)行順序控制2025-02-02
Springboot項(xiàng)目接口限流實(shí)現(xiàn)方案
這篇文章主要介紹了Springboot項(xiàng)目接口限流實(shí)現(xiàn)方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08
如何通過Java實(shí)現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片
在Java中,將PDF文件轉(zhuǎn)換為高質(zhì)量的圖片可以使用不同的庫,其中最常用的庫之一是?Apache?PDFBox,下面我們就來看看這個(gè)庫的具體使用吧2024-10-10

