项目开发常见问题

开发QA项目所遇问题总结

真正的开发与想象中的开发总是不一致的,想象中的开发是文思泉涌,手底下妙笔生花。可现实是只要一个小小的调试不通过,你就要得浪费大把时间与精力,因此想要提高自己的开发效率,就一定要注意总结开发过程中遇到的问题。在说问题之前,我先总结一下自己的开发流程。

一、开发流程

1.首先搭建springboot项目,使用maven构建项目,在pom文件中引入持久层,web层,redis,等的相应依赖
2.使用Navicat运行sql文件生成对应的表,并在idea中开发对应的实体类
3.开发对应mapper,service,并撰写测试类
4.开发controller,配置swagger,使用postman测试

二、遇到问题

问题I:tkmybatis逻辑删除执行成功,在mysql中却没有改变数据的deleted属性
解决方案:
这个主要是因为在实体类中导错@Id的包,导入正确的包应该是javax.persistence。
问题II:如何把更新,删除的数据通知到redis
在解决这个问题之前,首先要知道redis在项目中的使用流程,当项目需要查询时
1.在redis中查询,有返回
2.redis中没有,就到mysql中查询
3.在mysql中查询数据有就将其设置到redis中,并返回
4.如果数据库与redis中都没有返回null
在这个流程中我们知道任何数据的查询都会先在redis中查找,因此,当我们删除数据库中的数据时,它依然会在redis中存在并返回,因此,如果我们不想让数据库中删除的数据继续被用户查询,或者更新的数据被用户查询不到,我们需要在设置redis的key的时候设置过期时间,设置过期时间的方法:
redisTemplate.expire(key,时间长度,时间单位)。
问题III:逻辑删除与物理删除
如果我没有使用tk的api,那么当我使用逻辑删除的时候,我的查询,更新,插入sql都需要改变,都要考虑被逻辑删除的数据,因此我选择使用tk的api,开发框架不就是来为我们开发人员节省时间与精力的吗
物理删除简单暴力,但是比较危险,在公司开发的话不适用。
问题IV:使用redis的时候写不进去?写进去了又读不出来?
想要使用redis,需要先把实体类序列化,序列化之后自然就能存进去
读不出来纯粹是自己逻辑写的不对,设置key的有重复,有的时候检查自己的逻辑也很重要。
问题V:jar包冲突,这是一个非常让人头疼的问题
springboot已经帮我们解决了大部分的jar包冲突,我遇到的jar包冲突是关于tk的,到网上收了对应版本的tkmybaits就ok了。

三、反思

写代码一定要细心,要动手,动手才能知道自己的问题,动手才能更好的锻炼自己代码的熟练度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值