springBoot项目搭建细节笔记3
1、删除收货地址业务层代码
/** * 删除指定的收货地址数据 * @param aid 收货地址的aid * @param uid 用户uid * @param username 表示修改执行的人 */ @Override public void delete(Integer aid, Integer uid, String username) { //1、判断选中删除的收货地址存不存在 Address byAid = mapper.findByAid(aid); if(byAid==null) { throw new AddressNotFoundException("收货地址数据不存在"); } //2、选中删除的收货地址是不是属于该用户的 if(!byAid.getUid().equals(uid)) { throw new AccessDeniedException("非法数据访问"); } //3、执行删除操作 Integer row = mapper.deleteByAid(aid); if(row!=1) { throw new DeleteException("删除数据时产生的未知的异常"); } //4、删除数据后收获地址数量是否为0 Integer count = mapper.countByUid(uid); if(count==0) { //为0 直接终止程序 / 没有数据了 return; } //count不为0 //5、删除的收货地址是默认的,需要将最近时间修改的记录作为默认的收货地址 if(byAid.getIsDefault()==1) { Address address = mapper.findLastModified(uid); Integer update = mapper.updateDefaultByAid(address.getAid(), username, new Date()); if(update!=1) { throw new UpdateServiceException("更新数据时产生的未知的异常"); } } }
2、VO值对象
VO:Value Object,值对象,当进行SELECT 查询时,查询的结果数据包含多张表中的内容。
此时发现结果集不能直接使用某个pojo 实体类来接受,pojo实体类不能包含多表查询出来的结果。
解决方式是:重新去构建一个新的对象,这个对象能够接受用户查询出来的结果集,所以把这个对象称之为值对象。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现