原创 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