改前辈的代码,发现新知识。其中一条sql中出现了这个
"INSERT INTO `xxx` (xx, xx) " +
"VALUES(#{xx}, #{xx}) " +
"ON DUPLICATE KEY UPDATE Title = #{xx}, Modify_Time = now()"
其中的ON DUPLICATE KEY UPDATE,表示如果有重复的行记录,那么更新行记录。没有则插入新的行。
怎么判断行记录是否重复?mysql官网文档解释如下
If you specify an ON DUPLICATE KEY UPDATE
clause and a row to be inserted would cause a duplicate value in a UNIQUE
index or PRIMARY KEY
, an UPDATE
of the old row occurs.
也就是说如果有主键或者是唯一索引相同,就认定行重复,执行更新。
文档地址如下:
https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html
where 1=1出现在sql中的原因。
https://blog.csdn.net/qq_23994787/article/details/79045768?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
Java8 Stream流
对集合对数组的stream流操作
Lists.transform
因为环境问题调了一个下午+晚上,幸好有热心的小伙伴解决了,感恩。
对灯塔迭代环境的理解还是不够,有时间补补课。
在git提交的时候,经常会commit之后发现有问题还需要修改,因此再次修改再次commit,导致push的时候,gitlab出现多次commit记录,这里记录一下忽略某次commit的方法。
在git控制台 输入git log 回车查看commit记录,找到最近的一条版本号为07de81c1bfee32d16c406222c21edeb860835636
执行git rebase -i 07de81c1bfee32d16c406222c21edeb860835636(这是版本号)
进入到文件编辑,这里是vim编辑风格,按i输入,esc退出输入,:wq保存退出。
这里将我们不需要的版本那行前面的pick 改为 drop即可,esc,然后 :wq保存退出。
这时候就已经把误操作的commit删除了,提交即可。
写代码太粗心,以后一定注意逻辑严密,时刻检查对象是否为null,集合是否为空,所有需求对应接口是不是都检查完毕。希望中期赶紧过去,不要再心神不灵了.....免得被人嫌弃就不好了......
大佬看我1分钟教的快捷键 idea ctrl+shift+f 用来搜索文件中的关键字,以前只知道双击shift 搜索文件名字关键字。
好久没写csdn了,最近的学习记录都写到markdown上传github了,=.=。
早上遇见两个问题,记录一下。
第一个是关于maven聚合工程的。公司的某个数据库访问服务是maven聚合工程,下面的api子模块依赖于父模块,某天大佬更新了子模块,并且修改了子模块pom中依赖的父模块(2.3.7改为2.3.8),单独把子模块depoly到了私服仓库,父模块忘记depoly。
结果调用服务的另一个后端来找我了,api包引入失败呀。。。找到问题,通知大佬重新depoly了一下。
结果,清空maven子模块的本地仓库缓存,嗯。。。还是不行。这里就涉及到maven的一个坑了。
由于子模块依赖父模块,在第一次导入maven包的时候,父模块在远程仓库没有发布,但是在本地会生成对应的版本的文件夹,但是没有可用jar。当把父模块发布之后,本地再次reimport maven是没有用的,要先去删除本地的父模块的仓库缓存,再重新reimport maven。
第二个问题是关于双检锁的。来自于今天小组群里的讨论,
额。。这个写法有点骚的,虽然现在没出现问题,但是是有隐患的。首先这里即使给projectConf加上volatile也不解决问题,因为在第二个null判断后的projectConf的初始化和赋值都不是原子性的,volatile是无法保证这样的线程安全的。应该首先用局部变量引用初始化对象,最后再把引用给到projectConf,这样才能保证绝对安全。
不过,大多数时候,应该都是静态内部类的方式用的多吧?
App server服务注解在上传代码,修改sonar bug的时候 误删了 @AutoBindSingleton
导致service没有注入到容器,调了两三个小时bug,幸好有大佬帮忙挑错。
测试一催,我人都慌了。。。。。。以后一定检查无误才上提测环节,谨记谨记!!!