目录
????????MybatisPlus不仅提供了BaseMapper,还提供了通用的Service接口及默认实现,封装了一些常用的service模板方法。
MybatisPlus提供的通用接口为IService,默认实现为ServiceImpl。
其中封装的方法由前缀命名方式区分,可以分为以下几类:save
:? ? ?新增remove
: 删除update
: 更新get
:? ? ? 查询单个结果list
:? ? 查询集合结果count
:? 计数page
:? ? 分页查询
????????由于Service
中经常需要定义与业务有关的自定义方法,因此我们不能直接使用IService
,而是自定义Service
接口,然后继承IService
以拓展方法。同时,让自定义的Service实现类
继承ServiceImpl
,这样就不用自己实现IService
中的接口了。
首先,定义IUserService
,继承IService
:
public interface UserService extends IService<User> {
// 拓展自定义方法
}
然后,编写UserServiceImpl
类,继承ServiceImpl
,实现UserService
:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
}
@SpringBootTest
class UserServiceTest {
@Autowired
UserService userService;
//添加单条数据
@Test
void test1() {
//1. 初始化数据
User user = new User();
user.setUsername("TomX");
user.setPassword("123");
user.setPhone("18688990010");
user.setBalance(200);
user.setInfo("{\"age\": 24, \"intro\": \"英文老师\", \"gender\": \"female\"}");
user.setCreateTime(LocalDateTime.now());
user.setUpdateTime(LocalDateTime.now());
//2. 添加1条数据
userService.save(user);
}
//查询多条数据
@Test
void test2() {
List<User> users = userService.listByIds(List.of(1L, 2L, 4L));
users.forEach(System.out::println);
}
//删除多条数据
@Test
void test3() {
userService.removeBatchByIds(List.of(1L, 2L, 4L));
}
}