@Service
@Slf4j
public class UserServiceImpl implements UserService {
@Resource
UesrRepository uesrRepository;
@Override
public List<User> findData() {
List<User> user=uesrRepository.findAll();
return user;
}
@Override
public void updateData(User user) {
uesrRepository.save(user);
}
@Override
public void deleteData(Long id) {
uesrRepository.deleteById(id);
}
@Override
public void addData(User user) {
uesrRepository.save(user);
//saveAll:底层代码仍是用save,但是由于不需要创建事务,所以数据量大时存储速度会快
// uesrRepository.saveAll(List<>);
}
@Override
public List<User> findDataByIdDesc() {
Sort sort= Sort.by(new Sort.Order(Sort.Direction.DESC,"id"));
return uesrRepository.findAll(sort) ;
}
/**
* 根据名字模糊查----条件查询
* */
@Override
public List<User> requirementFindLikeName(String name) {
Specification<User> specification=((root, criteriaQuery, criteriaBuilder) -> {
Path<User> path = root.get("name");
Predicate predicateLike=criteriaBuilder.like(path.as(String.class),name+'%');
return predicateLike;
});
return uesrRepository.findAll(specification);
}
/**
* 排序查询
* */
@Override
public List<User> findDataByIdAsc() {
Sort sort= Sort.by(new Sort.Order(Sort.Direction.ASC,"id"));
return uesrRepository.findAll(sort) ;
}
/**
* 分页查询
* */
@Override
public Page<User> pageFindDate(int pageNo, int pageSize){
Pageable pageable = PageRequest.of(pageNo-1, pageSize);
Page<User> page = uesrRepository.findAll(pageable);
return page;
}
/**
* 复杂查询,条件封装查询
* */
public List<User>findByRequire(User param){
List<Predicate> require =new ArrayList<>();
Specification specification=((root, criteriaQuery, criteriaBuilder) -> {
if (!param.getName().isEmpty()){
Predicate predicate1= criteriaBuilder.equal(root.get("name"),param.getName());
require.add(predicate1);
}
return criteriaBuilder.and(require.toArray(new Predicate[require.size()]));
});
return uesrRepository.findAll(specification);
}
/**
* 条件封装 封装时间(date类型 YYYY-mm-dd),人员(精准查询),会议标题(模糊查询)
* */
public List<User> findMsg(User user){
log.info("[***********findMsg***********]");
List<Predicate> require=new ArrayList<>();
Specification specification=((root, criteriaQuery, criteriaBuilder) -> {
if (user.getDate()!=null){
log.info("findMsg----date");
Predicate predicateDate=criteriaBuilder.equal(root.get("date"),user.getDate());
require.add(predicateDate);
}
if(user.getName()!=null){
log.info("findMsg----name");
Predicate predicate1= criteriaBuilder.like(root.get("name"),'%'+user.getName()+'%');
require.add(predicate1);
}
if (user.getSex()!=null){
log.info("findMsg----sex");
Predicate predicate2= criteriaBuilder.equal(root.get("sex"),user.getSex());
require.add(predicate2);
}
return criteriaBuilder.and(require.toArray(new Predicate[require.size()]));
});
return uesrRepository.findAll(specification);
}
/**
* 查询时间段的数据+状态
* */
@Override
public List<User> findBydateAndsuatus(FindParam findParam) {
log.info("[***********findBydateAndsuatusImpl***********]");
List<Predicate> predicates=new ArrayList<>();
Specification specification=((root, criteriaQuery, criteriaBuilder) ->{
if(findParam.getBeginTime()!=null){
log.info("beginTime----info");
Predicate predicateBegin=criteriaBuilder.greaterThan(root.get("date"),findParam.getBeginTime());
predicates.add(predicateBegin);
}
if(findParam.getEndTime()!=null){
log.info("endTime----info");
Predicate predicateEnd=criteriaBuilder.lessThan(root.get("date"),findParam.getEndTime());
predicates.add(predicateEnd);
}
if(findParam.getStatus()!=null){
log.info("status----info");
Predicate predicatestatus=criteriaBuilder.equal(root.get("kkk"),findParam.getStatus());
predicates.add(predicatestatus);
}
if(findParam.getStatus()!=null){
log.info("findMsg----name");
Predicate predicate1= criteriaBuilder.like(root.get("name"),'%'+findParam.getStatus().toString()+'%');
predicates.add(predicate1);
}
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
});
return uesrRepository.findAll(specification);
}
}
数据偏移:${pageSize} offset (${pageNo}-1)*${pageSize}