02 2023 档案

摘要:现在的身份证应该没有不是18位的吧。。。。 select substring(identity_no ,7,8), (substring(now(),1,4)-substring(identity_no ,7,4)) - ( case when date_format(now(),'%m%d') - 阅读全文
posted @ 2023-02-27 17:26 aaacarrot 阅读(912) 评论(0) 推荐(0) 编辑
摘要:前不久才发现切换用户的时候, su 和 su - 效果是不同的。。。 记录一下, 大概就是这样子: su 后面不加用户是默认切到 root: 相当于: su root 但是: su root 和 su - root 是不一样的 su root 是不改变当前变量,即只获取这个用户的执行权限,但环境变量 阅读全文
posted @ 2023-02-25 14:31 aaacarrot 阅读(135) 评论(0) 推荐(0) 编辑
摘要:提一个问题: What is the meaning of {id:.+} in a Spring MVC requestmapping handler method? 写法可能很少见,但真遇到了,还真不一定能解释得了。 比如: @GetMapping("xxx-service/v1/files/{ 阅读全文
posted @ 2023-02-23 20:30 aaacarrot 阅读(118) 评论(0) 推荐(0) 编辑
摘要:背景 想要记录一下关于jdk下的 hashmap 存在的一些问题: 1、许多同学都知道JDK下的 HashMap 是线程不安全的,但究竟是怎样个不安全法,在多线程下会出现怎样的问题?其中原因是什么? 多线程下HashMap可能会出现的问题 1、多线程put操作后,可能会导致元素丢失 2、往里面put 阅读全文
posted @ 2023-02-23 14:28 aaacarrot 阅读(146) 评论(0) 推荐(0) 编辑
摘要:springboot 日志, 配置文件中, logging: level: org.springframework.web.servlet.DispatcherServlet: INFO com.dy.springboot.server.mapper: INFO com.carrot.logging 阅读全文
posted @ 2023-02-22 18:04 aaacarrot 阅读(90) 评论(0) 推荐(0) 编辑
摘要:报错如下: error: You have not concluded your merge (MERGE_HEAD exists). hint: Please, commit your changes before merging. fatal: Exiting because of unfini 阅读全文
posted @ 2023-02-22 15:00 aaacarrot 阅读(1183) 评论(0) 推荐(0) 编辑
摘要:定位线程死锁的方式 jstack pid 使用arthas 写一个死锁的小例子 import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.CountDownLatch; import java.util.c 阅读全文
posted @ 2023-02-21 21:17 aaacarrot 阅读(398) 评论(0) 推荐(0) 编辑
摘要:如题,—— 有时候,idea 就是不打印 System.out.println 怎么办捏: mvn clean compile —— 把代码重新编译一下就好了。(可能的情况之一) 还有一些类似的情况也是可以通过重新编译才可以的 在idea中,新写了一个 main 方法,然后 idea 提示说找不到主 阅读全文
posted @ 2023-02-21 20:58 aaacarrot 阅读(1001) 评论(0) 推荐(0) 编辑
摘要:关于SimpleDateFormat 熟悉Java的同学知道这个类是线程不安全的,但究竟是怎样不安全法,什么原因产生的线程不安全?估计未必全部人都能够答得上来(我也不能,emmmm) 呃,想更好地了解关于 SimpleDateFormat 这个工具类的线程不安全的原因,推荐一位大佬的博客,请参考:高 阅读全文
posted @ 2023-02-21 18:39 aaacarrot 阅读(168) 评论(0) 推荐(0) 编辑
摘要:lock() 、 trylock()、tryLock(long timeout, TimeUnit unit) 三者 lock 等到锁为止 trylock() 返回 boolean, 它是立即返回的!成就成,不成就不成,没有说必须拿到锁才行这么一说 tryLock(long timeout, Tim 阅读全文
posted @ 2023-02-21 17:38 aaacarrot 阅读(19) 评论(0) 推荐(0) 编辑
摘要:原文参考:https://www.cnblogs.com/kinome/p/12468421.html HttpGetBody import javax.servlet.ServletRequest; import java.io.BufferedReader; import java.io.IOE 阅读全文
posted @ 2023-02-20 17:44 aaacarrot 阅读(1369) 评论(0) 推荐(0) 编辑
摘要:背景 mybatis 好用,但有时候传参不免要用到 ${item} 的写法,比如要查询一个大表的某一些字段(由参数传入),或者按某字段进行排序,聚合等(这些字段由参数传入,并不是参数值)。这种时候,就会喜提一个SQL注入风险。 那这些场景不可避免,又是怎样去解决这些问题呢? 解决方案 要调整的地方有 阅读全文
posted @ 2023-02-20 14:29 aaacarrot 阅读(1822) 评论(0) 推荐(0) 编辑
摘要:背景 JDK8中, stream流程 下的map 就不多说了,很熟悉,flatmap倒是不是特别熟悉, map 和 flatMap 的区别 看一个例子: List<String> cityListOne = new ArrayList<>(); cityListOne.add("郑州"); city 阅读全文
posted @ 2023-02-19 12:39 aaacarrot 阅读(286) 评论(0) 推荐(0) 编辑
摘要:CP指令都熟悉,但有时候,当前目录下,有多个文件/文件夹,但只想复制其中部分 可以使用这个指令: cp -r `ls | grep -v *.sh | xargs` temp cp -r `ls|grep -v -E '*.log|sh'|xargs` temp 用 xargs把选出的文件传给cp做 阅读全文
posted @ 2023-02-16 18:56 aaacarrot 阅读(842) 评论(0) 推荐(0) 编辑
摘要:在JVM里面,字符串是放在常量池里面的。 String str = "xx"; 这个指令无论执行多少次,他们都是指向同一个对象,就是常量池里面的那一个,如果没有就创建,但如果有,就不会再创建了,只会在栈内存开辟一个名字叫 str 的空间,用来存放指向到 "xx" 在常量池里面的地址。 (所以执行太多 阅读全文
posted @ 2023-02-16 17:29 aaacarrot 阅读(111) 评论(0) 推荐(0) 编辑
摘要:背景描述 本地已有项目,但未添加到 git 管理 已经有一个新创建的 git 仓库,待添加项目代码 指令记录 git init # 把项目初始化,相当于在项目的跟目录生成一个 .git 目录 git add pom.xml # 把项目的文件加入暂存区(按需提交,也可以全部添加) git commit 阅读全文
posted @ 2023-02-16 16:40 aaacarrot 阅读(199) 评论(0) 推荐(0) 编辑
摘要:添加依赖 (可以忽略 Logging 部分,此处不想用 logback, 使用log4j2f而已) <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</a 阅读全文
posted @ 2023-02-15 15:05 aaacarrot 阅读(65) 评论(0) 推荐(0) 编辑
摘要:1、指定读取的配置路径 配置在 application.yml 文件里面 server: port: ${SERVER_PORT:10102} spring: application: name: config profiles: active: ${PROFILE:native} manageme 阅读全文
posted @ 2023-02-14 18:19 aaacarrot 阅读(108) 评论(0) 推荐(0) 编辑
摘要:按进程消耗内存多少排序的方法 ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' --sort -rsz | more 参数解析: -e 显示所有进程 -o 定制显示信息 pid 进程ID comm 进程名 args 启动命令 pcpu 占用CP 阅读全文
posted @ 2023-02-14 17:41 aaacarrot 阅读(266) 评论(0) 推荐(0) 编辑
摘要:echo "get key" | redis-cli -h 127.0.0.1 -p 6379 -a '123456' -n 5 > /tmp/redis_data.log 因为在命令行输入了密码,会报一个警告:redis using a password on the command line 但 阅读全文
posted @ 2023-02-14 11:58 aaacarrot 阅读(29) 评论(0) 推荐(0) 编辑
摘要:和普通字段差不多 <if test="flag==true"> <if test="flag"> <if test="!flag"> 阅读全文
posted @ 2023-02-10 15:34 aaacarrot 阅读(41) 评论(0) 推荐(0) 编辑
摘要:mysql 只有三种 join方式 参考: https://www.jianshu.com/p/76c90b03b7bd mysql 只有三种 join方式,但通过组合可以达到各种效果而已 join 就是 inner join left join right join full join(oracl 阅读全文
posted @ 2023-02-10 15:32 aaacarrot 阅读(79) 评论(0) 推荐(0) 编辑
摘要:| 中间件名称 |介绍| 优点 | 缺点 | | | | | | | sharding-JDBC | 当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据库分库分表访问 | (1)旧代码迁移成本几乎为零 (2)可适用于任何基于Java的ORM框架 阅读全文
posted @ 2023-02-10 11:24 aaacarrot 阅读(81) 评论(0) 推荐(0) 编辑
摘要:比较器 Comparator 接口 lamda 表达式定法 和 比较器类写法 public class StringComparator implements Comparator<String> { @Override public int compare(String s1, String s2 阅读全文
posted @ 2023-02-10 11:19 aaacarrot 阅读(37) 评论(0) 推荐(0) 编辑
摘要:问题描述 1、根据某个字段倒序,如果这个字段里面有部分空值, 那么空值会排在前面, 怎样把空值放到后面呢? 解决方案 之一:加个 null last select t.top_time, t.updateat from publish_info t ORDER BY t.TOP_TIME DESC 阅读全文
posted @ 2023-02-09 20:40 aaacarrot 阅读(679) 评论(0) 推荐(0) 编辑
摘要:直接看代码得了 是使用配置类进行分库分表设置 还可以使用配置文件进行配置 代码详情 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi= 阅读全文
posted @ 2023-02-08 16:50 aaacarrot 阅读(35) 评论(0) 推荐(0) 编辑
摘要:List 转 String (用分隔符隔开) 使用for 循环 + StringBuilder 的 方式就不记了, 写一种相对简约一点的做法: public String listToString(List list, char separator) { return org.apache.comm 阅读全文
posted @ 2023-02-07 10:36 aaacarrot 阅读(1577) 评论(0) 推荐(0) 编辑
摘要:没有亲自做过试验,是从网上看帖子得到的结论。记录一下 先说结论 子表数据量比外表数据量少,使用in。 子表数据量比外表数据量大,使用exists。 子表与外表数据量大小差不多,用in与exists的效率相差不大。 无论那个表大,用not exists都比not in要快。 再来分析(引用一些结论) 阅读全文
posted @ 2023-02-06 20:51 aaacarrot 阅读(180) 评论(0) 推荐(0) 编辑
摘要:上代码 一开始是这样写的: void insertArticleArea(@Param("articleId") Integer articleId, @Param("list") List list) ; 报错,找不到 "list" 然后换个参数名,改为 void insertArticleAre 阅读全文
posted @ 2023-02-06 17:31 aaacarrot 阅读(337) 评论(0) 推荐(0) 编辑
摘要:一开始是这样写的: <insert id="insertArticle" useGeneratedKeys="true" keyProperty="id"> xxxx </insert> 期望获取从 实体中拿到 id, id 是空的。但数据是有成功写进去了。 然后再加一个参数: keyColumn= 阅读全文
posted @ 2023-02-06 16:35 aaacarrot 阅读(136) 评论(0) 推荐(0) 编辑
摘要:背景 描述一次生产事故 在生产环境上,做表备份(create tablex user_1001 as select * from user),做了一些验证,做完验证后要把数据恢复回来,为了方便操作,把 user drop 掉之后,再用相同的方法,把 user_1001 复制为 user 表,再把 u 阅读全文
posted @ 2023-02-06 10:24 aaacarrot 阅读(499) 评论(1) 推荐(0) 编辑
摘要:背景 一次上线过程,搞了一个现网事故, 过程是这样子的, 部署之后,要做一些数据验证,于是对表做了一个备份,计划备份好后,测试一把,再把数据还原。 于是用的是 create table xx01 as select * from xx; 嗯,看到表和数据都被复制了,感觉很美好, 等测试完, 再把 x 阅读全文
posted @ 2023-02-02 15:45 aaacarrot 阅读(525) 评论(1) 推荐(0) 编辑
摘要:背景 想要做数据同步,但不知道待同步的数据是新增或更新 于是想,如果数据库可以识别 InsertOrUpdate 就好了 使用的是达梦数据库 but: 1、达梦是没有 ON DUPLICATE KEY UPDATE 这样的语句的 2、达梦有merge into语句,可以平替一下。(虽然莫名感觉性能不 阅读全文
posted @ 2023-02-02 15:08 aaacarrot 阅读(3840) 评论(0) 推荐(0) 编辑
摘要:文章是转载网络上的, 内容贴过来,格式乱了, 建议参考原文: 【MyBatis】几种批量插入效率的比较 批处理数据主要有三种方式: 反复执行单条插入语句 foreach 拼接 sql 批处理 一、前期准备 基于Spring Boot + Mysql,同时为了省略get/set,使用了lombok,详 阅读全文
posted @ 2023-02-02 14:58 aaacarrot 阅读(222) 评论(0) 推荐(0) 编辑
摘要:背景 业务系统中经常有批量导入的功能。 导入的数据里面,因为不清楚这些数据是新增的或是更新的,所以默认的一种做法是,先查一下,然后分出哪些是新增的数据,哪些是更新的数据, 然后再分新增和更新。 理论是这样子,但总感觉每次都要查询一下,也不是很舒服。 有一个想法 如果一个批次,100条数据, 如果先不 阅读全文
posted @ 2023-02-02 14:33 aaacarrot 阅读(33) 评论(0) 推荐(0) 编辑
摘要:查看表(库,表) select table_name from user_tables; //当前用户的表 (这个查询的表比较少) select table_name from all_tables; //所有用户的表 (全部的表) select table_name from dba_tables 阅读全文
posted @ 2023-02-01 19:55 aaacarrot 阅读(9867) 评论(0) 推荐(1) 编辑
摘要:1、cherry-pick 如果选择多个commit,它会聚成一次提交(生成一个新的提交) 参考: git cherry-pick 使用指南 阅读全文
posted @ 2023-02-01 16:00 aaacarrot 阅读(68) 评论(0) 推荐(0) 编辑
摘要:背景: 业务系统,多个选项(字符串数组,List),要存储到数据库中,数据表用的是 VARCHAR。 于是需要一种转换, 使用到的是 mybatis, 于是就使用 mybatis 的 typeHandler 代码 1、定义一个 typeHandler import org.apache.ibatis 阅读全文
posted @ 2023-02-01 11:06 aaacarrot 阅读(298) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示