MyBatis-Plus基础--内置Service CRUD(三)

        通用 Service CRUD 封装IService接口,它采用 get 查询单行, remove 删除 ,list 查询集合, page 分页,前缀命名方式区分 Mapper 层接口避免混淆。通用Service的使用场景是,如果方法很简单,例如,就是一个插入,或者根据条件更新,就不用在再Service写方法了,使用通用Service提供的方法即可。如果有较多的业务逻辑,一般在service中自定义方法,自己的service继承通用service。定义方法中,使用通用service要注入mapper。

注意:可以2种方式(Service 接口和Mapper接口)的CRUD一起用。

1,定义一个接口继承 IService接口

public interface UserService extends IService{}

 

2,定义一个实现类,实现自定义的接口UserService之前要继承IService的实现类ServiceImpl。

/**
 *IService:mp提供的接口。ServiceImpl:mp提供的接口实现类。
 *ServiceImpl, T>是IService 的实现类。
 */
@Service
public class UserServiceImpl extends ServiceImpl implements UserService{}

 

3,测试类注入自定义UserService 接口

    @Autowired
    private UserService userService;

 

4,批量插入saveBatch

	/**
	 * 插入(批量)
	 *
	 * @param entityList 实体对象集合
	 * @param batchSize  插入批次数量
	 */
	@Test
	public void saveBatch() {
		Collection entityList=new ArrayList();
		entityList.add(new User().setName("zsf").setAge(1).setEmail("[email protected]"));
		entityList.add(new User().setName("whh").setAge(21).setEmail("[email protected]"));
		userService.saveBatch(entityList);
	}

 

5,批量插入或批量修改saveOrUpdateBatch

	/**
	 * 插入(批量)
	 *
	 * @param entityList 实体对象集合
	 * @param batchSize  插入批次数量
	 * 当有主键id存在的时候-修改update。
	 * 当无主键是增加insert。
	 */
	@Test
	public void saveOrUpdateBatch() {
		Collection entityList=new ArrayList();
		//此修改
		entityList.add(new User().setId(1168160961132040194L).setName("zsf").setAge(1).setEmail("[email protected]"));
		//此添加
		entityList.add(new User().setName("whh2").setAge(21).setEmail("[email protected]"));
		entityList.add(new User().setName("whh3").setAge(11).setEmail("[email protected]"));
		userService.saveOrUpdateBatch(entityList);
	}

sql查看:

MyBatis-Plus基础--内置Service CRUD(三)_第1张图片

 

6,批量删除removeByIds

	/**
	 * 删除(根据ID 批量删除)
	 * @param idList 主键ID列表
	 * SQL: DELETE FROM user WHERE id IN ( ? , ? ) 
	 */
	@SuppressWarnings("unchecked")
	@Test
	public void removeByIds() {
		long[] array= {1168160961547276289L,1168162405327331330L};
		List idList = Arrays.asList(array);
		userService.removeByIds((Collection) idList);
	} 
  

 

7,批量更新updateBatchById

	/**
	 * 根据ID 批量更新
	 * @param entityList 实体对象集合
	 * @param batchSize  更新批次数量
	 * SQL:UPDATE user SET age=?, email=? WHERE id=? 
	 */
	@Test
	public void updateBatchById() {
		Collection entityList=new ArrayList();
		entityList.add(new User().setAge(1).setEmail("[email protected]").setId(1168110720185864193L));
		entityList.add(new User().setAge(1).setEmail("[email protected]").setId(1168160961132040194L));
		userService.updateBatchById(entityList);
	}

 

8,查询总记录数count

	/**
	 * 查询总记录数
	 * SQL:SELECT COUNT( 1 ) FROM user 
	 */
	@Test
	public void count() {
		int count = userService.count();
		System.out.println(count);
	}

 

9,了解更多方法的用法,请查询源码或者官方文档

https://mp.baomidou.com/guide/crud-interface.html#service-crud-%E6%8E%A5%E5%8F%A3

MyBatis-Plus基础--内置Service CRUD(三)_第2张图片

 

你可能感兴趣的:(MP)