相爱相杀的Bug们
小廷没睡醒
当笔记发,如文章有错误欢迎指正
展开
-
Spring Data Redis的GenericJackson2JsonRedisSerializer序列化器“失效”/“不起作用”问题
我们在初学Spring Data Redis时,肯定会遇到一个问题,就是他的序列化问题。当我们不指定序列化器时,默认Key、Value、HashKey、HashValue的序列化器都是null,然后会调用JdkSerializationRedisSerializer类来进行序列化。一般情况下,我们都不会使用默认的JDK序列化器,而是指定别的序列化器来使用。指定序列化器:@Configurationpublic class RedisConfig { @Bean ...原创 2022-05-24 11:18:25 · 2064 阅读 · 1 评论 -
重定向URL中文乱码问题
今天在使用重定向的时候,URL中的传参还有中文,导致出现了中文乱码,最后发现,是因为在重定向使用的是response,response 缓冲区的默认编码是 iso8859-1,此码表中没有中文。所以我们需要借助URLEncoder这个工具类的encode()方法,把会乱码的字符串指定目标编码即可。PS:还有很多别的办法,我只用了这一种语法:URLEncoder.encod(需要指定编码的字符串,指定的编码)举例:不做处理的Controller:@Reques...原创 2022-04-14 13:28:34 · 2044 阅读 · 0 评论 -
<form>表单中<button>自动提交的问题
最近想在<form>表单中,添加一个取消按钮,通过设置他的onclik来返回原来的界面,但是出现了一个很奇怪的现象,我点了这个取消的<button>却提交了,非常奇怪。一番搜索后,才发现原来是我没有指定<button>的type,而<button>的type如果不指定,那么默认就是submit。至此,解决办法就显而易见,指定<button>的type为button即可。举例:未指定type的<button>:...原创 2022-04-13 15:26:46 · 603 阅读 · 0 评论 -
Mysql中通过cast()函数实现对数值类型使用like关键字
Mysql中的like关键字,大家都不陌生,常用于模糊查询等,但是我们一般都是使用在varchar等字符串类型上,今天我遇到了一个需求,需要使用在数值类型上,那么该怎么解决这个问题呢?答案是使用cast()函数进行对数值类型进行转换。cast()函数作用:CAST()函数将任何类型的值转换为具有指定类型的值。目标类型可以是以下类型之一:BINARY,CHAR,DATE,DATETIME,TIME,DECIMAL,SIGNED,UNSIGNED。cast()函数语法...原创 2022-04-10 23:49:30 · 1210 阅读 · 0 评论 -
MyBatis-Plus自定义sql语句使用条件构造器的注意事项
在前面的文章提到了自定义sql语句如何使用MP的分页插件,在后续的使用中又出了一点状况。我想在自定义的sql语句中使用MP的条件构造器,一开始正常使用,后面突然发生了Bug,经过一番排查,发现是条件条件构造器不能为null。举例:前置条件:Mapper中的子自定义sql方法: IPage<Map<String,Object>> selectMyPage(Page<Map<String,Object>> page, @Pa...原创 2022-04-10 23:36:53 · 1443 阅读 · 0 评论 -
MyBatis-Plus分页插件之 对连表查询自定义sql语句来进行分页操作
今天有了一个需求,就是对连表查询的sql语句进行分页操作,我们都知道MP中的BaseMapper自带的方法都是对单表进行的操作,那么selectPage等分页查询方法自然也不例外。这个时候我就在想,要不然自己在sql语句中加入limit来进行分页算了,但是又想到自己页面中的部分其他功能又依赖于MP中的Page对象,那我要为了这个功能手搓一个自己的Page对象?nonono!tootroublesome!于是我就开始了我的搜索引擎大法,然后就发现其实还还是有一种很简单的办...原创 2022-04-07 18:20:06 · 2417 阅读 · 0 评论 -
mysql中判断字段是否等于null 的问题
在mysql语句中,一般都使用 '字段=xx' 的格式,来判断该字段是否等于某个值,但是今天遇到了问题,我想要判断某个字段是不是为null,使用了 '字段=null',却没有得到想要的结果。sql语句:select * from test where id=null结果: 注意!此时我的表中是由id为null的记录的啥也没有修改后的sql语句:select * from test where id is null结果:正常查询出了数据...原创 2022-03-30 21:39:17 · 2544 阅读 · 0 评论 -
再遇雪花算法id 之 与js数值类型number之间的问题
前面发过的文章中,提到过 雪花算法id在前后端交互中 会出现精度丢失的问题,使用注解@JsonSerialize(using = ToStringSerializer.class)即可解决,但是今天又遇到了这个问题,在使用了该注解的情况下,依旧发生了精度丢失,我简直是匪夷所思,精度丢失不是这么丢失的啊。然后最后几经解决,终于发现了问题所处。原来是我在向后端传值之前,调用了js函数,而在把 19位长度的数值 赋值给 形参,而这个时候形参的类型是number类型。由于js中 ...原创 2022-03-29 20:25:35 · 1357 阅读 · 0 评论 -
Spring的 String 与 Date 消息转换器
已知:1、Spring自带 这种格式的 "Wed Mar 02 13:00:51 CST 2022" 字符串 String <---> Date 消息转换器2、但是 Spring不带 这种格式的 "2022-03-10 07:00:55" 字符串 String <---> Date 消息转换器结论:1、所以当我们使用默认的Date格式字符串"Wed Mar 02 13:00:51 CST 2022",在Spring的Co...原创 2022-03-28 13:47:28 · 482 阅读 · 0 评论 -
Thymeleaf数据渲染延迟导致的问题
最近在写后台管理系统时,遇到了一个很诡异的Bug,时而有时而没有。在修改页面点击修改按钮,按道理应该正常运行,但是却404了,而且这个问题时间歇性的,有时候会出现404,有时候就会正常运行。一切的罪魁祸首都是Thymeleaf的缓存机制。PS:我学的也不深入,目前只会使用,这是我问大神得出来的结论。以下举例:HTML中部分代码:<a th:href="@{/order-list(pageNum=${pageNum})}"> 修改</a>正常...原创 2022-03-25 22:21:52 · 945 阅读 · 0 评论 -
前端页面 向 Controller 方法传参为对象 时的问题
后端 Conroller 方法 接收参数为对象的情况非常常见,但是前端传递过来的参数,直接是一个对象类型很少见,当然也有相应的方法实现 前端传递对象类型并且实现接收(比如使用 @RequestBody注解),可以自行百度。这里要讲的问题是,当前端 向 后端传参为 对象类型时,后端接受参数也为对象时,不做一些处理,从而产生的误区。前端代码<!-- Page类是没有重写toString()方法的类,Order类是重写了toString()方法的类 --><a tit...原创 2022-03-22 20:06:19 · 2130 阅读 · 0 评论 -
雪花算法id 返回前端精度丢失问题
当我们用雪花算法生成id的时候,雪花算法生成的id长度有19位,而json在序列化中会将数字类型转换为16位,这就导致了精度的丢失,而且丢失的那部分数据也并没有四舍五入,这里就不做这方面的研究,主要讲一讲解决方案。解决方案:在实体类中使用雪花算法的属性上加上这个注解,改变这个属性的序列化过程。...原创 2022-03-17 22:40:57 · 1089 阅读 · 0 评论 -
MyBatis-Plus 表名和关键字重复问题
今天在对数据库进行CRUD的时候,莫名报错,最后弄了半天,发现是 表名order和Mysql中的关键字重复了。我们用MyBatis中自己手写的sql语句中加上 反单引号`` 即可,但是在MyBatis-Plus中为我们自动生成的那些方法该怎么办呢?难道就这么无法使用了么,当然是有解决办法的。@TableName(value ="`order`")public class Order implements Serializable { 使用@TableName,在指定...原创 2022-03-17 20:33:13 · 2564 阅读 · 0 评论 -
Linux之tar指令
首先,我要在这儿里讲解一下,tar指令确实可以用来压缩和解压,但是我们要知道tar指令本来是用来做打包的,至于可以同时压缩,我猜测是添加选项后,底层多调用了压缩指令而已。 打包,这个概念和 压缩 很像,但是不相同,可以这么理解: PS:以下把文件比喻成海绵 打包:就是把一堆海绵(文件),放在一个袋子里,不做其他任何操作,然后把这个大袋子当成一个海绵(tar格式文件) 压缩:把一堆海绵(文件),放在一个袋子里,并且用力压了压,让海绵的体积变小了,然后把这个...原创 2022-03-12 22:49:39 · 1454 阅读 · 0 评论 -
SpringAOP配置全局事务(配置类方式)
以下分为一步步来讲解,最后会总结一整段配置类的代码,同时这里讲的不是很详细,我在最后放一个详细讲解的文章链接,看不懂的可以去看一下。1、创建切面类@Aspect // 定义切面类,把当前类标识为一个切面供容器读取@Configuration // 定义配置类,注册到容器中public class SpringConfigTrans {}2、创建@Bean修饰的方法,返回事务拦截器(TransactionInterceptor),声明对应方法的事务属性,并且注册到bean中...原创 2022-03-02 22:10:35 · 1167 阅读 · 0 评论 -
SpringBoot项目中templates目录的资源访问问题
在SpringBoot项目中,一般都把静态资源放在 static目录 下,而页面放在 templates目录 下SpringBoot默认静态资源映射文件夹是 /static/ 或 /public/ 或 /resources/ 或 /META-INF/resources/,并没有 templates目录,那么为什么我们平时使用起来却没有问题呢原因是我们一般都整合了thymeleaf,Springboot和thymeleaf的整合中,对template...原创 2022-03-02 13:46:23 · 8271 阅读 · 3 评论 -
yaml语法 关于key为中文时的问题
这里主要想讲一下关于key为中文时的情况,关于基础yaml语法就自行百度。先说结论:Yaml语法中的key不要用中文!!!Yaml语法中的key不要用中文!!!Yaml语法中的key不要用中文!!!其实也不是完全不能为中文,当JavaBean的属性的变量名是中文的时候就可以使用,但是yaml对中文key好像有各种各样的的bug,比如当JavaBean有多个中文变量名的时候,一个中文key,就会赋值给全部的中文变量。反正就不要使用中文的key了,感觉中文就是有一些奇怪的问题!!!以下原创 2022-01-21 10:56:10 · 2479 阅读 · 5 评论 -
Maven 项目 src源代码目录下 文件打包过滤问题
在Maven项目中,分为 src源代码目录 和 resources资源目录,在默认情况下,src目录,在打包部署的时候,只会保留 .java文件编译后的.class 的文件,会把除此之外的 xml、properties等文件过滤掉。在某些特定的情况下,我们需要保留 src目录下的其他类型文件,此时就需要设置 Maven项目的 pom.xml 文件。配置如下:<build> <resources> <!-- 下...原创 2021-12-27 22:30:00 · 1112 阅读 · 2 评论 -
Form表单 问号传参的冷门知识
在 <form> 中 想要传参给目标地址 我们可以在 <form> 中 的组件添加name属性,既可以传参,什么请求方式都可以;但是我今天想说的不是这个,如果想要使用 action="url+?xxx=XXX"问号传参的方式,那么请求方式不能是GET请求。因为在 <form> 表单中,使用GET请求,action中的url后面的参数会被忽略,使用POST请求,action中的url后面的参数则不会被忽略,至于PUT、DELETE请求会不会...原创 2021-12-25 22:02:44 · 844 阅读 · 1 评论