Service如何內建MP
@Mapper
public interface RoleMapper extends BaseMapper<RoleDO> {
}
public interface RoleService extends IService<RoleDO>{
}
@Service
@RequiredArgsConstructor
public class RoleServiceImpl extends ServiceImpl<RoleMapper, RoleDO> implements RoleService{
}
插入
插入一條記錄
boolean save(T entity)
批量插入
boolean saveBatch(Collection<T> entityList)
批量插入(預設一次插入多少)
boolean saveBatch(Collection<T> entityList, int batchSize);
更新
根據ID更新,null值的屬性不參與更新
Employee employee = new Employee();
employee.setId(7);
employee.setLastName("a");
employee.setAge(23);
employee.setEmail(null);
employee.setGender(null);
service.updateById(employee);
UPDATE tb_employee SET last_name='a', age=23
WHERE id=7;
根據條件進行更新,并置空其他屬性(項目庫的我那個頭疼的置空功能就能用這個解決)。
RoleDO roleDO = new RoleDO(roleDto);
roleService.update(roleDO, new UpdateWrapper<RoleDO>().lambda().
eq(RoleDO::getId, roleDO.getId())
//如果要置空其他的屬性
.set(RoleDO::getUpdateId, null)
.set(RoleDO::getUpdateTime, null)
);
查詢
根據ID擷取
T getById(Serializable id)
擷取一個(如果出現多個,則報錯,傳統的Excepted One , Actual Two 異常)
roleService.getOne(new QueryWrapper<RoleDO>().lambda()
.eq(RoleDO::getIsManager, role.getIsManager())
);
擷取一個(如果出現多個,擷取一個)
roleService.getOne(new QueryWrapper<RoleDO>().lambda()
.eq(RoleDO::getIsManager, role.getIsManager()), false
);
删除
根據主鍵ID
boolean removeById(Serializable id)
根據多個主鍵ID
boolean removeByIds(Collection<? extends Serializable> idList)
根據條件進行删除
RoleDO roleDO = new RoleDO(roleDto);
roleService.remove(new QueryWrapper<RoleDO>().lambda().
eq(RoleDO::getId, roleDO.getId())
);
通過Map拼接條件删除
Map<String, Object> map = new HashMap<>();
map.put("id", roleDO.getId());
map.put("role_name", roleDO.getRoleName());
roleService.removeByMap(map);
where id = #{id} AND role_name = #{roleName}
批量查詢
查詢所有
List<T> list()
根據ID批量查詢
List<T> listByIds(Collection<? extends Serializable> idList)
根據條件批量查詢
RoleDO roleDO = new RoleDO(dto);
return roleService.list(new QueryWrapper<RoleDO>().lambda()
.eq(RoleDO::getIsManager, roleDO.getIsManager())
);
分頁查詢
pageIndex第幾頁,pageSize每頁幾條資料
Page page = new Page(pageIndex,pageSize);
return roleService.page(page);
根據條件分頁查詢
@GetMapping(value = "/pageByWrap")
@SuppressWarnings(value = "unchecked")
public Object pageByWrap() {
return roleService.page(PageContext.getPage(), new QueryWrapper<RoleDO>().lambda()
.eq(RoleDO::getIsManager, "0")
);
}
查個數數量
int count()
return roleService.count(new QueryWrapper<RoleDO>().lambda()
.eq(RoleDO::getIsManager, "0")
);