通用 Service CRUD 封装IService接口,进一步封装 CRUD 采用 get 查询单行 remove 删 除 list 查询集合 page 分页 前缀命名方式区分 Mapper 层避免混淆。
MyBatis-Plus中有一个接口 IService
和其实现类 ServiceImpl
,封装了常见的业务层逻辑。
创建Service 接口和实现类
IUserService
/**
* IUserService继承IService模板提供的基础功能
*/
public interface IUserService extends IService<User> {
}
UserServiceImpl
/**
* ServiceImpl实现了IService,提供了IService中基础功能的实现
* 若ServiceImpl无法满足业务需求,则可以使用自定的UserService定义方法,并在实现类中实现
*/
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
}
测试查询记录数
@Resource
private IUserService userService;
@Test
public void testGetCount(){
//SELECT COUNT( * ) FROM user
long count = userService.count();
System.out.println("总记录数:" + count);
}
测试批量插入
@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("ybc" + i);
user.setAge(20 + i);
users.add(user);
}
//SQL:INSERT INTO t_user ( username, age ) VALUES ( ?, ? )
//==> Parameters: 1655161629217820674(Long), ybc0(String), 20(Integer)
//==> Parameters: 1655161629297512450(Long), ybc1(String), 21(Integer)
//==> Parameters: 1655161629297512451(Long), ybc2(String), 22(Integer)
//==> Parameters: 1655161629297512452(Long), ybc3(String), 23(Integer)
//==> Parameters: 1655161629297512453(Long), ybc4(String), 24(Integer)
//执行了5次插入,批量插入其实是循环添加数据
userService.saveBatch(users);
}
标签:IService,Service,Parameters,CRUD,Long,Plus,user,String
From: https://www.cnblogs.com/1963942081zzx/p/17379836.html