摘要:
比较器 Comparator 接口 lamda 表达式定法 和 比较器类写法 public class StringComparator implements Comparator<String> { @Override public int compare(String s1, String s2 阅读全文
摘要:
问题描述 1、根据某个字段倒序,如果这个字段里面有部分空值, 那么空值会排在前面, 怎样把空值放到后面呢? 解决方案 之一:加个 null last select t.top_time, t.updateat from publish_info t ORDER BY t.TOP_TIME DESC 阅读全文
摘要:
直接看代码得了 是使用配置类进行分库分表设置 还可以使用配置文件进行配置 代码详情 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi= 阅读全文
摘要:
List 转 String (用分隔符隔开) 使用for 循环 + StringBuilder 的 方式就不记了, 写一种相对简约一点的做法: public String listToString(List list, char separator) { return org.apache.comm 阅读全文
摘要:
没有亲自做过试验,是从网上看帖子得到的结论。记录一下 先说结论 子表数据量比外表数据量少,使用in。 子表数据量比外表数据量大,使用exists。 子表与外表数据量大小差不多,用in与exists的效率相差不大。 无论那个表大,用not exists都比not in要快。 再来分析(引用一些结论) 阅读全文
摘要:
上代码 一开始是这样写的: void insertArticleArea(@Param("articleId") Integer articleId, @Param("list") List list) ; 报错,找不到 "list" 然后换个参数名,改为 void insertArticleAre 阅读全文
摘要:
一开始是这样写的: <insert id="insertArticle" useGeneratedKeys="true" keyProperty="id"> xxxx </insert> 期望获取从 实体中拿到 id, id 是空的。但数据是有成功写进去了。 然后再加一个参数: keyColumn= 阅读全文
摘要:
背景 描述一次生产事故 在生产环境上,做表备份(create tablex user_1001 as select * from user),做了一些验证,做完验证后要把数据恢复回来,为了方便操作,把 user drop 掉之后,再用相同的方法,把 user_1001 复制为 user 表,再把 u 阅读全文
摘要:
背景 一次上线过程,搞了一个现网事故, 过程是这样子的, 部署之后,要做一些数据验证,于是对表做了一个备份,计划备份好后,测试一把,再把数据还原。 于是用的是 create table xx01 as select * from xx; 嗯,看到表和数据都被复制了,感觉很美好, 等测试完, 再把 x 阅读全文
摘要:
背景 想要做数据同步,但不知道待同步的数据是新增或更新 于是想,如果数据库可以识别 InsertOrUpdate 就好了 使用的是达梦数据库 but: 1、达梦是没有 ON DUPLICATE KEY UPDATE 这样的语句的 2、达梦有merge into语句,可以平替一下。(虽然莫名感觉性能不 阅读全文
摘要:
文章是转载网络上的, 内容贴过来,格式乱了, 建议参考原文: 【MyBatis】几种批量插入效率的比较 批处理数据主要有三种方式: 反复执行单条插入语句 foreach 拼接 sql 批处理 一、前期准备 基于Spring Boot + Mysql,同时为了省略get/set,使用了lombok,详 阅读全文
摘要:
背景 业务系统中经常有批量导入的功能。 导入的数据里面,因为不清楚这些数据是新增的或是更新的,所以默认的一种做法是,先查一下,然后分出哪些是新增的数据,哪些是更新的数据, 然后再分新增和更新。 理论是这样子,但总感觉每次都要查询一下,也不是很舒服。 有一个想法 如果一个批次,100条数据, 如果先不 阅读全文
摘要:
查看表(库,表) select table_name from user_tables; //当前用户的表 (这个查询的表比较少) select table_name from all_tables; //所有用户的表 (全部的表) select table_name from dba_tables 阅读全文
摘要:
1、cherry-pick 如果选择多个commit,它会聚成一次提交(生成一个新的提交) 参考: git cherry-pick 使用指南 阅读全文
摘要:
背景: 业务系统,多个选项(字符串数组,List),要存储到数据库中,数据表用的是 VARCHAR。 于是需要一种转换, 使用到的是 mybatis, 于是就使用 mybatis 的 typeHandler 代码 1、定义一个 typeHandler import org.apache.ibatis 阅读全文
摘要:
先来说一个总结: 1、通过构造函数的方式进行的BEAN创建,出现了循环依赖,没有办解决 2、单例BEAN通过SET方法进行属性注入,可以通过提前暴露的方式(即三层缓存)进行解决 3、如果是原型模式的BEAN(作用域是 prototype)无办法解决,因为它不在SPRING容器中进行缓存。无法进行提前 阅读全文
摘要:
参考:https://www.cnblogs.com/shindo/p/5579191.html (先 mark 一下) 阅读全文
摘要:
UML中,可见性分为4级 1、public 公用的 :用+ 前缀表示 ,该属性对所有类可见 2、protected 受保护的:用 # 前缀表示,对该类的子孙可见 3、private 私有的:用- 前缀表示,只对该类本身可见 4、package 包的:用 ~ 前缀表示,只对同一包声明的其他类可见 阅读全文
摘要:
spring 注入的3种方式 属性注入 就是平时使用最多的 在属性上加一个 @Autowired set 方法 在spring3.x及之前推荐使用,通过提交暴露可以解决循环依赖的问题 构造器(构造方法) 在 spring4.x及之后推荐使用 // 属性注入 @Service public class 阅读全文
摘要:
java里面创建实例有哪些方式呢? 直接new 一个 通过反射 通过 clone 方法 通过反序列化 new 一个实例 // 使用java语言的关键字 new 创建对象,初始化对象数据,这个确实就没有什么好说的了,应该也是用得最多的的了 Dog doge = new Dog(); 通过反射生成一个实 阅读全文