原创 JXLS 簡化報表(excel數據)導出

一、JXLS的優點適用場景 優點:簡單,易於維護 Jxls是基於Poi導出Excel的模板式封裝,較之直接使用Poi來一路create的方式,它更使得一般(小批量數據)的導出Excel變得非常簡單和易於維護 適用場景:小批量數據

原创 mysql 的GROUP_CONCAT函數的使用(group_by 如何顯示分組之前的數據)

一、 GROUP_CONCAT 的完整語法如下: group_concat([DISTINCT] 要連接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符']) 默認的分割符爲:"," 數據

原创 數據庫的事務的四大屬性和四大隔離級別(mysql)

一、什麼是事務 數據庫事務(簡稱:事務)是數據庫管理系統執行過程中的一個邏輯單位,由一個有限的數據庫操作序列構成。—— 維基百科 事務的概念看上去不難,但是需要注意以下幾個點: 1、首先,事務就是要保證一組數據庫操作,要麼全部成功

原创 spring data elasticsearch 打印sql(DSL)語句

剛開始使用spring data elasticsearch 會有有一個疑問就是:能不能像操作mysql那樣打印sql日誌,也便於分析啊,其實特別簡單,具體如下的代碼所示: /** * 高亮顯示 * @

原创 Elasticsearch 類比 mysql 實現 in and like or(Spring-Data-Elasticsearch)

一、前提 1.springboot 版本爲2.2.2.RELEASE 2.spring-boot-starter-data-elasticsearch 版本 跟隨springboot版本 3.elasticsearch 版本爲6.

原创 Java中線程池ThreadPoolExecutor原理探究

一、 前言 線程池主要解決兩個問題:一方面當執行大量異步任務時候線程池能夠提供較好的性能,,這是因爲使用線程池可以使每個任務的調用開銷減少(因爲線程池線程是可以複用的)。另一方面線程池提供了一種資源限制和管理的手段,比如當執行一系

原创 mybatis使用流式查詢避免一次性查詢數據量過大導致OOM(內存溢出)

問題 開發中難免會遇到大批量數據的導出,比如幾十萬(幾百萬)條數據,而服務器的內存過小則會導致內存溢出 解決方案 使用mybatis的流式查詢,步驟如下: dao層接口: @Mapper public interface Cust

原创 SpringMVC與Struts2區別與比較總結

SpringMVC與Struts2區別 1、Struts2是類級別的攔截, 一個類對應一個request上下文,SpringMVC是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本

原创 springboot項目中使用shiro 自定義過濾器和token的方式

實現步驟主要是以下幾步: 1. 在項目中導入maven依賴 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</arti

原创 使用 responseentity進行文件的下載

文件的下載的功能是系統必不可少的功能,自己手寫有些麻煩,這時候springMVC爲我們提供一種簡單的方式使用 responseentity 進行文件下載,具體代碼如下: // 根據文件id 進行文件的下載 @RequestMap

原创 mysql的大小寫對性能的影響問題

一. mysql對大小寫是否敏感是根據平臺區分的 1. 默認情況下: linux環境嚴格區分大小寫,windows環境下不區分大小寫** 所以正常開發的時候在本地測試數據庫名或者表名大小寫沒關係,遷移到linux服務器的時候就會報

原创 left join on 後and 和 where 的區別

1. SELECT * FROM student a LEFT JOIN sc b ON a.Sid = b.Sid AND a.Sname="趙雷" 結果:(left join 左連接,左表所有數據 拼接 右表符合on條件的數

原创 ThreadLocal原理探究

一、ThreadLocal 多線程訪問同一個共享變量特別容易出現併發問題,特別是多個線程需要對一個共享變量進行寫入時候,爲了保證線程安全,一般需要使用者在訪問共享變量的時候進行適當的同步,如下圖: 二、 ThreadLocal

原创 jackson使用@JsonSerialize格式化BigDecimal解決.00不顯示問題

一、 問題 最近開發中使用BigDecimal這個數據類型 返回json數據時出現了點問題: # 1.前端第一次保存的時候 穿過來的數據格式 240.00 240.77 # 2. mysql數據庫存儲的數據格式(數據庫字段已經設

原创 springboot實現統一的異常處理

本文是基於Rest API的,返回的錯誤信息是json格式的數據!需要注意的是這個只是對發生異常的時候,統一了一下返回結果的格式,並不是對異常的try catch,控制檯依舊會打印出異常日誌 完整項目地址: https://git