原创 spring StringUtils.split的坑

String[] split1 = org.apache.commons.lang.StringUtils.split("aaaa,bbbb,cccc", Constant.COMMA); Syste

原创 mybatis 二級緩存實踐

參考文檔 https://mybatis.org/mybatis-3/sqlmap-xml.html#cache xml and java 1、@CacheNamespace(flushInterval = 1800000) 2、<cach

原创 redis事務的坑,opsForValue().increment 返回null 場景說明 查看源碼 重現 修正 結論

線上運行一段時間後就NPE,本地又重現不了。一開始以爲是框架的bug,後面發現還是人爲導致的... 場景說明 這裏的方法放回null public Long increment(String key, long i) {

原创 Semijoin 半連接

什麼是semi-join? 所謂的semi-join是指semi-join子查詢。 當一張表在另一張表找到匹配的記錄之後,半連接(semi-jion)返回第一張表中的記錄。 與條件連接相反,即使在右節點中找到幾條匹配的記錄,左節點 的表也只

原创 javax.validation和hibernate-validator參數校驗

@Validated和@Valid的區別 在Controller中校驗方法參數時,使用@Valid和@Validated並無特殊差異(若不需要分組校驗的話) @Valid:標準JSR-303規範的標記型註解,用來標記驗證屬性和方法返回值,進

原创 mybatis-plus 擴展 batch insert ignore

mybatis-plus爲了兼容多個數據庫,因此並沒有提供對mysql 特性功能 insert ignore的支持。但是我們可以自己來實現! 定義 定義一個mapper繼承直接繼承BaseMapper import com.baomidou

原创 js long 精度丟失,在後端使用字符串返回

js中無法存儲java的long類型。最大值不過 1455799804067174400 可以在後端用String代替Long返回 注意jackson的註解和Serializer類的全限定名。這裏就算是用錯了也不會報錯。所以一直不生效 /

原创 橋接模式下宿主機有多個網卡怎麼指定其中一個?

橋接模式下如果宿主機機器有多個網卡,我們需要手動指定其中一個。否則虛擬機連不上網的。 首先看下宿主機器的網卡配置信息 這邊要指定固定的一個網卡 指定到剛纔的網卡名字,注意別弄錯了 然後 ip要和宿主機器爲一個網段 網關、子關

原创 git 忽略本地修改,不將修改提交到遠程

本地項目的配置文件自己修改了不想提交到倉庫,每次都要rollback非常不方便。可以試下這個方法: 忽略: git update-index --assume-unchanged ./sd-schedule/src/main/resourc

原创 mysql slow log

https://dev.mysql.com/doc/refman/5.7/en/slow-query-log.html slow log是工作中最重要的日誌了。mysql啓動不了看error log,查詢慢就看slow log。 查看slo

原创 探究下集合類指定初始容量的必要性

以ArrayList爲例,對比下指定初始容量和不指定兩種情況對List.add性能的影響 /** * 指定初始容量後:耗時 1030 */ ArrayList<Object

原创 使用 try-with-resources 代替try-catch-finally調用close關閉資源

類似於InputStream、OutputStream 、Scanner 、PrintWriter等的資源都需要我們調用close()方法來手動關閉,一般情況下我們都是通過try-catch-finally語句: //讀取文

原创 mysql Storage Engines

https://dev.mysql.com/doc/refman/5.7/en/storage-engines.html show engines; 查看當前支持的存儲引擎 (root@localhost) [test]>show engi

原创 msyql slow log

查詢參數 online設置slow log set global slow_query_log =ON; set global slow_query_log_file= 'mysql-slow.log'; set global long_q

原创 JUC 假設現在有10個任務,要求同時處理,並且必須所有任務全部完成才返回結果

方法1、executorService.submit+Callable+FutureTask實現 FutureTask.get()實現主線程阻塞 import java.util.ArrayList; import java.util.co