原创 wps/excel對一列數據按照分割符拆分

數據-分列: 分割符號: 選擇分割符號: 查看效果:

原创 SpEL表達式:集合處理操作 推薦閱讀

spEL表達式,常用於註解中,將多樣的請求/響應對象轉換爲統一的對象。但是多樣的請求/響應對象會存在集合,我們如何通過spEL表達式去讀取集合的數據,或者是重寫請求/響應對象? @Slf4j public class ListSpELTes

原创 網絡/數據庫常見的超時設置(socketTimeOut、connectionTimeout...)

transaction timeout:事務執行超時,一個事務中可能包含多個sql(statement) statement timeout:單個sql(statement)執行超時 socket timeout:socket讀取超時 c

原创 hive-jdbc的connection如何設置socketTimeOut 依賴版本 源碼分析 解決方案 文章參考

每日的數據同步任務中,會將在線業務庫的數據同步至 Hive,在剛上線的一段時間內,對 Hive 的 SQL 操作每隔十來天會出現 socket read timeout 的異常。該問題導致我經常凌晨收到告警然後起牀修復該問題,因爲該問題是

原创 文章總結—SQL常見語句

先對某個字段分組,然後各個分組最新一條數據。 利用group by特性,當使用group by語句後,select上可以使用一些聚合函數。 舉例說明:以tb_record中的rule_id分組,並且找到最新的記錄(因爲數據庫是自增的

原创 常用工具類(1)—DateUtil實現日期格式化和解析

引入依賴: <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10.14</version

原创 JAVA基礎篇27:集合求交集、並集、差集、補集、分片 1. 集合操作 2. 分片操作

1. 集合操作 import java.util.ArrayList; import java.util.Collection; import org.apache.commons.collections.CollectionUtils;

原创 mysql的update底層一定是先刪除再插入嗎? 1. 場景分析 2. 附錄: 推薦閱讀

目錄: 場景分析 1.1 不更新主鍵 1.1.1 就地更新(in-place update) 1.1.2 先刪除掉舊記錄,再插入新記錄 1.2. 更新主鍵 附錄 2.1 delete操作的兩個階段 階段一:delete_mar

原创 【工具類】BigDecimal常用功能

一些常見的功能的工具類彙總: 比較大小; 加減乘除; 轉化成百分比; 保留兩位小數 import java.math.BigDecimal; import java.math.RoundingMode; public abstra

原创 mysql的查詢json結構數據時出現Invalid JSON text異常

當運行JSON EXTRACT 函數但是出現:Error running query: Invalid JSON text in argument 1 to function json_extract: "Missing a name fo

原创 記一次線上bug:請求入參沒有trim()導致查詢失敗

現象:對外提供的api接口,但是某一天查詢接口突然出現了異常。 原因:查詢到庫裏面的數據存在空格,而代碼中有將數據轉換成Map的處理,存在空格的數據爲key,導致無法查詢到。 解決方案: 使用sql查詢數據庫中存在多少存在該字段存在空格的

原创 Mysql語法(7)— 左外連接妙用(找到A表存在,B表不存在的數據)

背景:定時任務刪除庫中一些沒有消耗的廣告數據。目前是有兩張表: A表:某個業務的送審記錄表(小表); B表:全量的消耗記錄表(大表); 要刪除的數據: 在A表中且在B表中,但是B表的消耗小於某個值; 或者 在A表中且沒有在B表中; 如果

原创 慢sql優化(1):limit下desc和asc性能相差百倍 一次慢查詢的優化 V1升級(分批次查詢) V2升級(limit底層原理) 相關文章

背景:Task任務,需要將最近一天的數據查詢出來,然後同步到kafka中。 一次慢查詢的優化 環境:mysql5.7.26 表數據總量:4千萬數據 單日數據量:1百萬數據 表索引:date_user_id_idx(date、user_i

原创 JAVA基礎篇26:實際項目中對Exception的裝飾&使用 相關文章

定義業務異常類: public class BusinessException extends RuntimeException { //繼承的頂級父類實現了序列化接口,子類還是需要顯示的聲明SerialVersionUID。

原创 mybaitis攔截器(3)— 打印調用者service的信息(獲取到調用者的信息) 1. 數據準備 2. 代碼實現

需求:我們在使用mybatis的攔截器做一些工作時,有時候需要打印出調用者的信息以便能夠快速處理。 1. 數據準備 SpringBoot整合Mybatis+druid快速開發 插件詳情: @Slf4j @Intercepts({@Sig