原创 獲取上一個自然周的、上一個自然月的起始時間範圍

一般統計經常用的時間範圍,在此提供兩個經常用到,時間範圍取每個月一號零時至下月一號零時之間 例如:當前日期是 20190910 20190801 00:00:00 —— 20190901 00:00:00 public stati

原创 java實現redis分佈式鎖,已經過實際線上環境測試

這兩天重構之前的項目線上測試,發現線程池總是很快就滿了,打印了線程池日誌,發現報錯提示數據庫死鎖,查看數據庫日誌定位到具體的sql和數據表,發現該表有五個地方修改,糾結之下暫時放棄了事務處理;然後上線,運行一段時間後仍然是會有部分線程長時

原创 在MySQL中阻止UPDATE語句沒有添加WHERE條件的發生

如果在生產環境中使用UPDATE語句更新表數據,此時如果忘記攜帶本應該添加的WHERE條件,那麼。。Oh,no…後果可能不堪設想。那麼有沒有什麼辦法可以阻止這樣的事情發生,又不使用任何的審覈工具呢。。。辦法當然是有的 sql_safe_u

原创 java採用三方工具包自動判斷文件編碼 兩種方式

第一種我試過了不是很準,網上有人說是通過統計概率判斷文件編碼的再此處記錄, UTF8的CSV文件 用wps打開修改後保存,再用notepad打開顯示爲GB2312,該方法讀取的編碼格式爲 UTF-16BE,按此格式讀取文件出現亂碼; 用e

原创 阿里雲OCR接口前端 js ajax 調用(ocrEcommerce)無阿里雲圖片服務器直接將圖片轉爲base64字符串

ajax接口調用 function ocrutil1(img64){ obj = { img: img64, prob: false}, $.ajax({ url: "https://ocrapi-eco

原创 idea 註釋 自動 return param

groovyScript(" def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList();

原创 多層for循環中空指針問題排查和思考

首先說下問題出現的背景,最近重構公司老項目 老項目:spring+hibernate+dubbo+ehcache+mysql 新項目:springboot+myBatis+dubbo+redis+mysql 該項目完全是向外提供dubbo

原创 MySQL 優化之 Covering Index

在網上隨便搜搜,就能找到大把的關於 MySQL 優化的文章,不過裏面很多都不準確,說個常見的: SELECT a FROM ... WHERE b = ... 一般來說,很多文章會告誡你類似這樣的查詢,不要在 “a” 字段上建立索

原创 mysql 聚集索引 非聚集索引

聚集索引 索引是存儲了表數據的物理地址 聚集索引既存儲了表數據key又存儲了行值,物理地址的邏輯順序和表存儲的順序一致!是唯一的 對於Innodb,主鍵毫無疑問是一個聚集索引。但是當一個表沒有主鍵,或者沒有一個索引,Innodb會如何處理

原创 volatile 底層實現 簡要說明

當多個線程進行操作共享數據時,可以保證內存中的數據可見。其原理是它調用了計算機底層代碼叫內存柵欄,它時時刻刻把緩存當中的數據刷新到主存當中,可以理解爲它的操作就是在主存當中完成的。使用了Volatile關鍵字後效率也會相對低一些,因爲JV

原创 spring啓動過程---簡單概述--有錯誤望指出

web容器的初始化過程爲 web容器(如tomcat)讀取web.xml, 讀取文件中兩個節點和 容器創建ServletContext,它是web的上下文,整個web項目都會用到它 讀取context-param節點,它以 鍵值對的形式出

原创 spring事物介紹

一、事務的基本原理 Spring事務 的本質其實就是數據庫對事務的支持,沒有數據庫的事務支持,spring是無法提供事務功能的。對於純JDBC操作數據庫,想要用到事務,可以按照以下步驟進行:     獲取連接 Connection con

原创 mysql開發規範

1.避免使用NULL字段 NULL字段很難查詢優化,NULL字段的索引需要額外空間,NULL字段的複合索引無效, NULL非常影響索引的查詢效率 建議用0,特殊值或空串代替NULL值 age int NOT NULL DEFAULT 0;

原创 mysql基本數據類型

一、選擇合適大小的字段類型避免浪費空間       tinyint 1字節 -128 - 127 unsigned無符號 0-255       smallint 2字節 -2^15 (-32,768) 到 2^15 - 1 (32,76

原创 面向對象七大設計原則

1:開閉原則(Open for Extension,Closed for Modification)    就是對程序修改關閉,對程序擴展開放。就是在不改變一個程序源碼的情況下 改變程序的行爲。如何做到既不修改,又可以擴展?    解