基础方法
MP提供了一些基础好用的方法,直接开箱即用。下面做简单的演示.
这里注意,我展示的是Service层的公共方法,Dao层的有时间我会另开一篇进行解析.
getById 根据ID查询数据
@Override
public ActivityEntity getDataById() {
// 从数据库中复制的id,测试使用
Long id = 1293926691101519873L;
ActivityEntity activityEntity = getById(id);
return activityEntity;
}
控制台打印结果:

listByIds 根据ID列表查询数据
这其实就是一个in()查询
List<Long> ids = Arrays.asList(1293926691101519873L, 1293926692372393985L, 1293926692380782593L, 1293926692380782594L);
List<ActivityEntity> activityEntityList = listByIds(ids);
return activityEntityList;
控制台打印结果:

listByMap 根据Map构建查询条件进行查询
这是一个使用Map作为参数的查询方法。注意这里的Map参数为:
KEY: 数据库的column
VALUE: 相等的值
这里我查询的是活动名称等于13号的活动,报名人数为5的活动列表信息
HashMap<String, Object> paramsMap = new HashMap<>(4);
paramsMap.put("activity_name", "13号的活动");
paramsMap.put("count", 5);
List<ActivityEntity> activityEntityList = listByMap(paramsMap);
return activityEntityList;
控制台打印结果:

save 保存数据
ActivityEntity activityEntity = new ActivityEntity();
activityEntity.setActivityId(2L);
activityEntity.setActivityName("企业级活动");
activityEntity.setActivityType(1);
activityEntity.setCount(5);
activityEntity.setCreateTime(new Date());
save(activityEntity);
控制台打印效果:

saveBatch 批量插入数据
Date create_time = new Date();
ActivityEntity activityEntity = ActivityEntity.getInstance(2L, "企业级活动", 0, 5, create_time);
ActivityEntity activityEntity1 = ActivityEntity.getInstance(2L, "企业级活动", 1, 10, create_time);
ActivityEntity activityEntity2 = ActivityEntity.getInstance(2L, "企业级活动", 1, 12, create_time);
ActivityEntity activityEntity3 = ActivityEntity.getInstance(2L, "企业级活动", 2, 2, create_time);
ActivityEntity activityEntity4 = ActivityEntity.getInstance(2L, "企业级活动", 2, 3, create_time);
ActivityEntity activityEntity5 = ActivityEntity.getInstance(2L, "企业级活动", 0, 8, create_time);
ActivityEntity activityEntity6 = ActivityEntity.getInstance(2L, "企业级活动", 0, 22, create_time);
List<ActivityEntity> activityEntityList = Arrays.asList(activityEntity, activityEntity1, activityEntity2, activityEntity3, activityEntity4, activityEntity5, activityEntity6);
saveBatch(activityEntityList);
控制台打印效果:

updateById 根据主键更新数据
ActivityEntity data = getById(1293926691101519873L);
data.setActivityName("活动变更");
updateById(data);
控制台打印效果:

updateBatchById 批量更新数据
// 这里复用了批量查询。读者可以自行构造数据
List<ActivityEntity> dataList = getDataList();
dataList.forEach(activityEntity -> activityEntity.setCreateTime(new Date()));
updateBatchById(dataList);
控制台打印效果:

removeById 根据ID删除数据
removeById(1297437208340402178L);
控制台打印效果:

removeByIds 根据ID列表批量删除数据
List<Long> ids = Arrays.asList(1297437208340402177L, 1297437208332013572L, 1297437208332013571L);
removeByIds(ids);
控制台打印效果:

网友评论