springBoot项目搭建细节笔记2
1、控制层设计请求、处理请求
设计请求:
请求映射路径
请求方式 GET 查询 DELETE 删除 PUT 修改 POST 添加
请求参数
返回值 /JSON
处理请求:
@RestController=@Controller+@ResponseBody
@RequestMapping()
2、在进行网络数据传输时,为了尽量避免无效数据的传输,可以将无效数据设置成null,一方面可以节省流量,另一方面提高效率
3、用户选择默认收货地址的主要细节
1)映射文件中SQL
<!--Address findByAid(Integer aid); --> <select id="findByAid" resultType="Address"> select * from t_address where aid=#{aid} </select> <!-- Integer updateNonDefault(@Param("uid") Integer uid); --> <update id="updateNonDefault"> update t_address set is_default=0 where uid=#{uid} </update> <!-- Integer updateDefaultByAid(@Param("aid") Integer aid, @Param("modifiedUser") String modifiedUser, @Param("modifiedTime") Date modifiedTime);--> <update id="updateDefaultByAid"> update t_address set modified_user=#{modifiedUser},modified_time=#{modifiedTime},is_default=1 where aid=#{aid} </update>
2)业务层方法中代码逻辑
/** * 设置用户的某条收货地址为默认收货地址 * @param aid 收货地址的aid * @param uid 用户uid * @param username 表示修改执行的人 */ @Override public void setDefault(Integer aid, Integer uid, String username) { //1、首先判断此条收货地址数据是否存在,不存在则抛出AddressNotFoundException Address byAid = mapper.findByAid(aid); if(byAid==null) { throw new AddressNotFoundException("收货地址数据不存在"); } //2、检测当前获取的收货地址数据的归属是否属于该用户 / 非法访问异常 if(!byAid.getUid().equals(uid)) //Integer 包装类 equals()方法 { throw new AccessDeniedException("非法访问异常"); } //3、先将所有的收货地址设置为非默认的 / 通过影响的行数判断是否更新成功 Integer row= mapper.updateNonDefault(uid); if(row < 1) //此时最少有一条数据 { throw new UpdateServiceException("用户更新时产生未知的异常"); } //4、根据aid将用户选中的收货地址数据设置为默认的收货地址/ 通过影响的行数判断是否更新成功 Integer row1 = mapper.updateDefaultByAid(aid, username, new Date()); if(row1!=1) { throw new UpdateServiceException("用户更新时产生未知的异常"); } }
4、SpringBoot中配置HiddenHttpMethodFilter,在yaml配置文件中配置如下
注意两个配置:①请求方式必须是post;②_method的配置 /put 修改 delete 删除
spring:
mvc:
hiddenmethod:
filter:
enabled: true
5、模糊查询
/** * 测试模糊查询 * @param mohu * @return */ List<User> testMohu(@Param("mohu") String mohu); <!--List<User> testMohu(@Param("mohu") String mohu);--> <select id="testMohu" resultType="User"> <!--select * from t_user where username like '%${mohu}%'--> <!--select * from t_user where username like concat('%',#{mohu},'%')--> select * from t_user where username like "%"#{mohu}"%" </select>
6、在运行时查看执行的sql语句
在配置文件中进行配置:logging.level.com.liang.manager_system.mapper=debug /蓝色字段为mapper接口所在包路径
7、插入sql语句时默认插入时的时间

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具