- 2022-06-13查看全文Java Springboot #提问# 请教一个问题:一个SpringBoot2.3项目,WebConfig继承了WebMvcConfigurationSupport,添加了静态文件的路径映射之后前端访问404,但是同样添加的另一个文件路径映射就成功了,这是什么情况?尝试过换成实现We...鱼友0412:debug一下,看看是否找到了指定页面720分享
Java Springboot #提问# 请教一个问题:一个SpringBoot2.3项目,WebConfig继承了WebMvcConfigurationSupport,添加了静态文件的路径映射之后前端访问404,但是同样添加的另一个文件路径映射就成功了,这是什么情况?尝试过换成实现WebMvcConfigurer,还是一样的效果。
#Java# 关于PageHelper的一个注意点: 今天项目发现了一个bug,一个分页列表查询,页面限制为10条时,总数据量显示为10条,将限制提高到20条时,总数据量变成了11条。排查后发现是因为在获取列表筛选条件的wrapper时(进行分页查询之前),进行了数据库查询,而在这之前调用了PageHelper.startPage()方法,该方法在ThreadLocal中已经设置了分页变量并添加到Mybatis拦截器中还未被消费,导致获取wrapper时做了分页,丢失了部分数据,最终导致分页后的列表总数据缺失。 解决方案: 将获取筛选条件部分的逻辑移动到PageHelper.startPage方法前即可 注意: PageHelper的分页是基于ThreadLocal实现的,而内部使用的Page变量实现了Closeable接口,重写的close()方法就调用了PageHelper.clear()方法,无需在完成分页查询后手动调用,可以在可能执行的分页查询取消后调用来手动清除分页变量。
#Java# 之前向鱼皮请教了一个字符串的自定义排序问题,简单来说就是分页查询时能够按照某个字段实现类似 ["1A-2B", "2A-2B", .... , "11A-2B"]的排序效果(如果使用mysql或者java的默认排序,会变成"1A-2B", "11A-2B", "2A-2B"这样,这是逐字符排序导致的) 根据鱼皮的建议,考虑到实际的业务需求,字符串中出现的数字一般不会很多位,且该字段不会特别长,于是采用了一下解决方案:将65535(char的最大值)以内的连续数字转为对应的char字符替换原来的连续数字,新增时作为排序字段保存到数据库,获取列表时直接根据该排序字段排序即可,解决了先分页查询后排序的数据误差问题,实测可用。 代码如下,虽然应该没什么人用得上 public String convert(String fileName) { char[] cs = fileName.toCharArray(); StringBuilder builder = new StringBuilder(); for (int i = 0; i < cs.length;) { if (cs[i] < '0' || cs[i] > '9') { builder.append(cs[i ]); } else { StringBuilder numBuilder = new StringBuilder(); while (i < cs.length && cs[i] >= '0' && cs[i] <= '9') { numBuilder.append(cs[i ]); } // 如果超出5位数或者超过65535(char最大值)则当做多个字符处理,否则转为数字对应的字符拼接 if (numBuilder.length() > 5) { builder.append(numBuilder); continue; } int num = Integer.parseInt(numBuilder.toString()); if (num > 65535) { builder.append(numBuilder); } else { builder.append((char) num); } } } return builder.toString(); }
Day10 跳绳200*3 为了蹭公司食堂压缩了跳绳的时间,加上昨天打球用力过猛,明天试试不在公司吃,看看能跳多少,争取200*6
Day13 今天效率太低,只完成了两个,不过刷题慢慢有感觉了
Day9 一直忘了打卡,不过也一点都不健康,今天算是最健康的一天,跳了绳还打了几年没怎么碰的篮球,以后每周三都坚持去打!(白嫖公司租的场地)
Day12 决定听从鱼皮的建议,脚踏实地,把不熟悉的知识重新学一遍,同时学习一些平常用不到的中间件。
#MySQL# 记录一个遇到过又忘记了的小问题: mysql使用select count查询时,如果存在group by子句且刚好结果集为空,不会返回0而是返回空行,使用mybatis的mapper接收时会得到null值。原理有待研究,有懂的大佬可以指点一下。


