深入浅出MyBatis-Plus之通用Service,全网最全笔记

一、通用Service

MP中有一个接口 IService和其实现类 ServiceImpl,封装了常见的业务层逻辑

1、创建Service接口

创建 service 包,创建 UserService,继承 IService


package com.hank.mybatisplus.service;

public interface UserService extends IService<User> {

}

2、创建Service实现类

创建 impl 包,创建 UserServiceImpl,继承 ServiceImpl,实现 UserService

package com.hank.mybatisplus.service.impl;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {

}

3、创建测试类

创建ServiceTests

package com.hank.mybatisplus;

@SpringBootTest
public class ServiceTests {

    @Resource
    private UserService userService;

}

4、测试记录数

@Test
public void testCount(){

    int count = userService.count();
    System.out.println("总记录数:" + count);
}

5、测试批量插入

@Test

public void testSaveBatch(){

    // SQL长度有限制,海量数据插入单条SQL无法实行,
    // 因此MP将批量插入放在了通用Service中实现,而不是通用Mapper
    ArrayList<User> users = new ArrayList<>();
    for (int i = 0; i < 5; i++) {
        User user = new User();
        user.setName("Helen" + i);
        user.setAge(10 + i);
        users.add(user);
    }
    userService.saveBatch(users);
}


二、自定义Service

1、添加接口方法

UserService中添加接口方法

List<User> queryUsersByAge( Integer beginAge,Integer endAge);

2、实现接口方法

@Override
public List<User> listAllByName(String name) {
    // baseMapper对象指向当前业务的mapper对象
    return baseMapper.selectAllByName("Helen");
}

3、测试

ServiceTests中添加测试方法


@Test
public void testQueryUsersByAge(){
    List<User> users = userService.queryUsersByAge(16,30);
    users.forEach(System.out::println);
}
原文链接:,转发请注明来源!