MyBatis-Plus 通用IService使用详解

所属分类: 软件编程 / java 阅读数: 126
收藏 0 赞 0 分享

一、引言

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

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

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

二、 小编瞎扯

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

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

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

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

三、IService使用

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

/**
 * <p>
 * 用户 服务类
 * </p>
 *
 * @author IT贱男
 * @since 2019-06-14
 */
public interface UserService extends IService<User> {

}

/**
 * <p>
 * 用户 服务实现类
 * </p>
 *
 * @author IT贱男
 * @since 2019-06-14
 */
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

}

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

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

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

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

 @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的相关操作

 /**
  * 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);
 }

更多精彩内容其他人还在看

Java实现一个简单的文件上传案例示例代码

这篇文章主要介绍了Java实现一个简单的文件上传案例,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解在spring中使用JdbcTemplate操作数据库的几种方式

这篇文章主要介绍了详解在spring中使用JdbcTemplate操作数据库的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

java中的switch case语句使用详解

这篇文章主要介绍了java中的switch case语句使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

深入理解Java 线程池

这篇文章主要介绍了Java 线程池的相关资料,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
收藏 0 赞 0 分享

详解mybatis #{}和${}的区别、传参、基本语法

这篇文章主要介绍了mybatis #{}和${}的区别、传参、基本语法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

MyBatis 中 ${}和 #{}的正确使用方法(千万不要乱用)

这篇文章主要介绍了MyBatis 中 ${}和 #{}的正确使用方法,本文给大家提到了MyBatis 中 ${}和 #{}的区别,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Mybatis中的 ${} 和 #{}区别与用法

这篇文章主要介绍了Mybatis中的 ${} 和 #{}区别与用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Maven安装过程图文详解

这篇文章主要介绍了Maven安装过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

SpringBoot登录拦截配置详解(实测可用)

这篇文章主要介绍了SpringBoot登录拦截配置详解(实测可用),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

JAVA 内存溢出案例汇总

这篇文章主要介绍了JAVA 内存溢出案例的汇总,文中讲解非常细致,帮助各位工作学习时避免内存溢出,感兴趣的朋友可以了解下
收藏 0 赞 0 分享
查看更多