MyBatis-Plus 通用 IService 使用介绍与简单使用教程

MyBatis-Plus 通用 IService 使用介绍与简单使用教程。

一、引言

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

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

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

MyBatis-Plus 通用 IService 使用介绍与简单使用教程
MyBatisPlus愿景

二、IService 使用

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

MyBatis-Plus 通用 IService 使用介绍与简单使用教程
MyBatisPlus中IService提供的接口
/**
 * 用户 服务类
 */
public interface UserService extends IService<User> {

}
/**
 * 用户 服务实现类
 */
@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 关系不大。但是我们通过 MyBatis-Plus 就可以窥探出学会抽象,学会设计模式,学会架构的好处。

我们多数程序员,一直在进行 CRUD 编程,每天一直在忙着写 CRUD 代码。从来都没想过如何去更好的封装 CRUD 中不变的部分,抽象可变的部分。让自己每天更轻松。

我这里只是抛砖引玉,让大家看到更多优秀的框架。优秀的代码实现,去借鉴它们,丰富自己的经验,在项目中花更少的时间,实现更重要的功能。而不应该花更多的时间在 CRUD 上。

让原本花在 CRUD 上的时间,空闲出来,学习更多新的知识,看更多的书。

MyBatis-Plus 通用 IService 使用介绍与简单使用教程

: » MyBatis-Plus 通用 IService 使用介绍与简单使用教程

原创文章,作者:wdmbts,如若转载,请注明出处:https://blog.ytso.com/tech/java/251414.html

(2)
上一篇 2022年5月2日 12:39
下一篇 2022年5月2日 12:43

相关推荐

发表回复

登录后才能评论