domain层(do层)写法:
@Entity(name = "t_customer")
public class CustomerDO {
@Column(name = "name",length = 100,nullable = false)
private String name;
@Column(name = "code",length = 200)
private String code;
DAO层 : String解释--是因为JpaRepository泛型接口的对应那个查的ID
public interface ICustomerDao extends JpaRepository<CustomerDO,String>,JpaSpecificationExecutor<CustomerDO> {
}
Service接口层:
public interface ICustomerService {
/*
相关方法
*/
void save();
}
ServiceImpl业务实现层:BaseServiceImpl :相关基础的业务
@Service
public class CustomerServiceImpl extends BaseServiceImpl implements ICustomerService{
@Override
public List<CustomerDTO> listCustomer(){
/*sort: 排序 ,按createTime*/
Sort sort = new Sort(new Sort.Order(Sort.Direction.DESC,"createTime"));
List<CustomerDO> customerDOS = customerDao.findAll((root, query, cb) -> {
/*get("deleted"):是对应 DO 类里的字段*/
Path<Boolean> deletePath = root.get("deleted");
return cb.and(cb.equal(deletePath,false));
},sort);
return customerDOS;
} }
Controller层:注意:@Api是 使用了Swagger
@Api(value = "客户管理",description = "客户维护")
@RestController
@RequestMapping("customer")
public class CustomerController {
@Autowired
ICustomerService customerService;
@ApiOperation(value = "保存一个顾客")
@PostMapping("saveCustomer")
public WebResult saveCustomer(@RequestBody CustomerDTO customerDTO){
customerService.saveCustomer(customerDTO);
return WebUtils.success();
}
}
分页的运用:PageRequest第一个参数 :显示第几页;第二个参数:每页显示多少条数据
public List<NoticeDTO> listLastByCount(int count) {
UserContextDTO userContextDTO=getUserContext();
PageRequest pageRequests=new PageRequest(0,count,Sort.Direction.DESC,"publishDate");
Page<NoticeDO> noticeDOS=noticeDao.findAll((root, criteriaQuery, criteriaBuilder) -> {
Path<Boolean> deletePath=root.get("deleted");
Path<String> tenantIdPath=root.get("tenantId");
return criteriaBuilder.and(
criteriaBuilder.equal(deletePath,false),criteriaBuilder.equal(tenantIdPath,userContextDTO.getTenantId())
);},pageRequests);
List<NoticeDO> noticeDOS1 = noticeDOS.getContent();
List<NoticeDTO> noticeDTOS = noticeMapper.from(noticeDOS1);
return noticeDTOS;
}
事务处理:应用场景:重新保存一条信息时需要删除原来的那条,于是就需要事务来控制,以防止删除时突然断电 @Transactional(rollbackFor = Exception.class)