服务器之家

服务器之家 > 正文

MyBatis-Plus 通用IService使用详解

时间:2020-08-25 00:21     来源/作者:IT贱男

一、引言

MP除了通用的Mapper还是通用的Servcie层,这也减少了相对应的代码工作量,把通用的接口提取到公共。其实按照MP的这种思想,可以自己也实现一些通用的Controller。

今天是周天,作为一名码农来说,这里小编提醒大家周末有空还是多出去运动一下。

生命在于运动,生命诚可贵。

二、 小编瞎扯

相信有和小编一样的朋友,在大城市独自漂泊,感觉就凭借自己内心那一点点的火苗,想要燃烧起来。

小编在上海这些年,不慌也不忙,从开始每天厌恶工作,到现在开开心心的上班,回顾自己的成长除了存款,其他倒是成长了不少。在今年小编做了自己很多想做的事,虽然钱花了,但是感觉完成了多年自己的心愿,还是很有成就感的。

所以各位程序员的小伙伴,好好享受生活、多和家人联系沟通,过好每一天。

这一段和本章没有任何关系。

三、IService使用

service层需要继承IService,当然实现层也要继承对应的实现类。

?
1
2
3
4
5
6
7
8
9
10
11
/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author IT贱男
 * @since 2019-06-14
 */
public interface UserService extends IService<User> {
 
}
?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * <p>
 * 用户 服务实现类
 * </p>
 *
 * @author IT贱男
 * @since 2019-06-14
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
 
}

这里小编基本的增删改查就不一一演示了,演示几个特殊一点的方法。

getOne(),这个是方法返回结果不止一条则会抛出异常,如果想默认取第一条结果,可以给这方法传第二个参数为false。

?
1
2
3
4
5
@Test
public void getOne() {
 User one = userService.getOne(Wrappers.<User>lambdaQuery().eq(User::getAge, 31),false);
 System.out.println(one);
}

saveOrUpdateBatch(),批量新增或者修改方法,判断ID是否存在,如果ID不存在执行新增,如果ID存在先执行查询语句,查询结果为空新增,否则修改。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@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的相关操作

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
 * 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);
}

到此这篇关于MyBatis-Plus 通用IService使用详解的文章就介绍到这了,更多相关MyBatis-Plus 通用IService内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_38111957/article/details/92415413

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
最新idea2020注册码永久激活(激活到2100年)
最新idea2020注册码永久激活(激活到2100年) 2020-07-29
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
返回顶部