- 博客(14)
- 收藏
- 关注
原创 Spring生命周期的坑 导致PageHelper失效
缓存的方法用@PostConstruct修饰 所以在服务启动的时候就会加载到这个方法 从而执行从库里分页查询数据缓存下来 debug下来发现每次查出来的数据并不是我设置的分页数 而是全部数据 而查出来的数据又很多 在循环里如果最后一次分页查询小于500条 就终止查询 查出全部数据的话就一直不会中止。PageHelper的分页查询原理 是在sql查询语句后面追加limit语句实现的 而limit语句是通过Intercepter拦截器实现的 下图是添加拦截器的方法。那为什么PageHelper不生效了呢?
2025-02-07 22:12:30
266
原创 使用for update出问题
正常查(读已提交)或者新开个事务 防止查询出无数据时产生了间隙锁->加锁for update查->一些判断逻辑(判断时的快照为当前事务最新的)->事务结束。然而注意在此之前要有一个不加锁的且为读已提交的或者新开的事务去查询一次 防止间隙锁的产生 以及防止当前事务读取的快照正确。需要在库中查询数据时加上for update行锁 在当前事务完成前不允许别的事务来操作 当前事务就可以进行更新了。
2024-12-29 22:31:27
279
原创 B+树的时间复杂度
说的最多的就是log2(m)*logm(n),得证方式是当遍历B+树时采用二分法遍历 遍历时间复杂度为log2(m)而后续有人用图解工具演示了一下发现该公式曲线和log2(n)是重合的,经公式推导后也发现二者可相等。从上至下遍历节点个数是b+树的深度logm(n) 二者相乘即为b+树时间复杂度。所以最后是哪个我个人理解是都可以,目前觉得靠谱的只有这个说法了哈~看了很多博客 以下全凭个人理解,仅供参考。
2023-09-09 14:24:35
514
1
原创 如何减少算法提交时内存消耗?
昨天在学算法时候,思路和题解打的一样,代码也差不多少,也就变量名不太一样。后来一点一点试着改发现:把变量名起的尽量和要表达的意思一样,比如慢指针写成low就比写成l或者left所占内存小!
2023-04-13 17:28:57
192
原创 BeanUtils.copyProperties出错
在使用BeanUtils.copyProperties复制属性时,保证左右类型一模一样才行 数据库里写了一个价格属性,类型是double型的,在dao层定义了BigDecimal类型,此时从数据库拿出来的数据和后端代码不统一,换成。同样在给数据库设置值时要这样写。
2023-04-04 21:41:24
534
原创 时区设置问题
在使用Mybatis连接数据库时jdbc:mysql://localhost:3306/powernode?serverTimezone=UTC"不写后面的UTC时区会报时区错误。但注意后期在开发SpringBoot项目时,发现加上这个前后端时间会差8小时,(在做秒杀项目时发现的)
2023-04-04 21:31:07
364
原创 解决获取自增主键为空问题
在获取数据库中自增主键的值时,控制台打印始终为null,插入库存始终与商品表对应不上,困扰了我好久,在商品的Mapper文件中,insert写入如下语句也不好使。最终断点调试发现语句顺序写反了,要先把商品的主键值获取并设置到模型里去,再执行插入操作才可以获取到,之前没设置好主键值就直接获取,获取的都为空。前提:库存表要获取商品表的主键作为库存表的外键。
2023-04-04 21:12:51
376
原创 Redis使用短信云服务注意事项
最近在写SpringBoot项目时在用户登录时验证码验证使用到了短信云服务,在使用签名和模板的时候出了一些小问题。注意申请完签名之后,系统会赠送一个验证码模板 不要使用这个。要自己新申请一个,否则使用时会报模板不匹配的错误。
2023-04-04 21:01:54
70
原创 Android Studio安装注意事项
不要随便自己下这些东西,按照Android Studio上提示一步一步来!它会根据你的版本来匹配符合版本的,gradle如果与默认的不匹配没关系,Android Studio会自动提示你更新下载的。在安装时不论是Android Studio还是配套的avd、gradle,都安装最新版本的就好了,要不版本冲突后续改很麻烦的。gradle的环境路径不要写到bin目录,配到文件夹所在位置就好了,这是在帮别人安装时发现的。另外avd和sdk的环境配置如下。一些自己踩的坑 希望能帮到大家。
2023-04-04 20:37:55
324
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅