MyBatis-Plus 通用IService使用详解

 更新时间:2020年08月24日 11:57:06   作者:IT贱男  
这篇文章主要介绍了MyBatis-Plus 通用IService使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、引言

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

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

相关文章

  • 初识Spring Boot框架之Spring Boot的自动配置

    初识Spring Boot框架之Spring Boot的自动配置

    本篇文章主要介绍了初识Spring Boot框架之Spring Boot的自动配置,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • Java实现抢红包功能

    Java实现抢红包功能

    这篇文章主要为大家详细介绍了Java实现抢红包功能,采用多线程模拟多人同时抢红包,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • RocketMQ保证消息的有序性的案例分享

    RocketMQ保证消息的有序性的案例分享

    Apache RocketMQ 是一个常用的开源消息中间件,它提供了强大的有序消息处理能力,这里我们会探讨 RocketMQ 是如何保证消息的有序性的,包括其设计原理和相关的源码实现,需要的朋友可以参考下
    2024-04-04
  • JAVA中的字符串常量池使用操作代码

    JAVA中的字符串常量池使用操作代码

    Java中的字符串常量池是Java堆中的一块特殊存储区域,用于存储字符串。它的实现是为了提高字符串操作的性能并节省内存,这篇文章主要介绍了JAVA中的字符串常量池,需要的朋友可以参考下
    2022-12-12
  • 详细解读spring中的@Resource注解

    详细解读spring中的@Resource注解

    这篇文章主要介绍了详细解读spring中的@Resource注解,此注解来源于JSR规范(Java Specification Requests),其作用是找到依赖的组件注入到应用来,它利用了JNDI技术查找所需的资源,需要的朋友可以参考下
    2023-10-10
  • Java设计模式之策略模式

    Java设计模式之策略模式

    这篇文章介绍了Java设计模式之策略模式,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • Java EE过滤器优先级控制的实例解读

    Java EE过滤器优先级控制的实例解读

    通过使用@Priority注解,可以控制JavaEE应用中过滤器的执行顺序,在上面的示例中,我们通过设置不同的优先级,实现了TimeFilter和LogFilter的执行顺序控制
    2025-02-02
  • Springboot项目接口限流实现方案

    Springboot项目接口限流实现方案

    这篇文章主要介绍了Springboot项目接口限流实现方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 一文彻底搞懂java多线程和线程池

    一文彻底搞懂java多线程和线程池

    当一个服务器接受到大量短小线程的请求时,使用线程池技术是非常合适的,它可以大大减少线程的创建和销毁次数,提高服务器的工作效率,这篇文章主要给大家介绍了如何通过一文彻底搞懂java多线程和线程池的相关资料,需要的朋友可以参考下
    2021-09-09
  • 如何通过Java实现PDF转高质量图片

    如何通过Java实现PDF转高质量图片

    在Java中,将PDF文件转换为高质量的图片可以使用不同的库,其中最常用的库之一是 Apache PDFBox,下面我们就来看看这个库的具体使用吧
    2024-10-10

最新评论