原创 Mybatis源碼閱讀(三):結果集映射3.3 —— 主鍵生成策略

前言 在前面兩篇博客中,我們介紹了對於select語句的簡單映射和嵌套映射。mybatis中使用ResultHandler等一系列的類,將查詢結果封裝到實體類中,可以說是mybatis中最複雜的過程,而剩下的insert、update、d

原创 新生代與老年代

Java 中的堆是 JVM 所管理的最大的一塊內存空間,主要用於存放各種類的實例對象。 在 Java 中,堆被劃分成兩個不同的區域:新生代 ( Young )、老年代 ( Old )。其中新生代 ( Young ) 又被劃分爲三個區域:E

原创 Mybatis源碼閱讀(一):Mybatis初始化1.1 解析properties、settings

前言 筆者大概是從今年的5月份開始喜歡上源碼閱讀的,起初是閱讀徐郡明前輩的《Mybatis技術內幕》入的坑,不得不說大佬就是大佬,書中講得東西很細很全。半年過去了,筆者對mybatis略知一二,也開始在爲公司搭架構,並且基於Mybatis

原创 Mybatis源碼閱讀(一):Mybatis初始化1.2 —— 解析別名、插件、對象工廠、反射工具箱、環境

接上一節 上一節:解析properties和settings 解析typeAliases typeAliases節點用於配置別名。別名在mapper中使用resultType時會使用到,是對實體類的簡寫。 別名有兩種配置方式 通過pack

原创 Mybatis源碼閱讀(三):結果集映射3.1 —— ResultSetBuilder與簡單映射

前言 在前面的文章中,已經介紹了三種SqlSource的代碼,下面開始介紹執行select語句對查詢結果集封裝的過程。 ResultSetHandler 前面的文章中得知,mybatis會將結果集按照映射配置文件中定義的映射規則,如res

原创 Mybatis源碼閱讀(四):核心接口4.1——StatementHandler

前言 難得復工了,公司百業待興,有一大堆接口需要對接,忙的不行。回過神來發現自己快一個月沒寫博客了,趕緊抽時間寫一寫,不能斷更。 截止上一篇博客,我們已經把結果集映射的內容介紹完畢,接下來就是對Mybatis中的核心接口進行介紹,通過介紹

原创 Mybatis源碼閱讀(三):結果集映射3.2 —— 嵌套映射

前言 這段時間疫情原因躺在家做鹹魚,代碼也沒怎麼敲,源碼也沒怎麼看,博客拖更了一個月,今天心血來潮繼續讀了點源碼,晚上正好抽空發個博客,證明我還活着。 關於結果集映射,在一個月前的博客中已經將簡單映射給講述完畢,在實際應用中,除了單表查詢

原创 varchar字段長度最好是2的n次方-1

計算機是二進制計算的,1 bytes = 8 bit ,一個字節最多可以代表的數據長度是2的8次方 11111111 在計算機中也就是-128到127。 而varchar類型存儲變長字段的字符類型,當存儲的字符串長度小於255字節時,其需

原创 註解版poi操作工具

最近在搭公司新項目的架構,測試的過程中深感導出Excel極爲不便,因此就產生了寫一個通用導出工具類的想法。寫完後經測試發現比較好用,因此將公司相關的代碼移除,單獨拿出來這個模塊進行開源。 項目的GitHub地址:POI操作工具 如果您對本

原创 vue動態路由加載組件,找不到module問題

vue動態路由加載組件,找不到module問題 vue動態加載路由並掛載到vue。路由信息由後端給出,同時component的路徑也是後端給出,但是動態加載該路徑會報錯。 原因:webpack 編譯es6 動態引入 import(

原创 String s = new String(123) 究竟創建了幾個對象

前言 今天上班划水的過程中有人詢問到這個問題,網上對於這個問題也有爭議,有說創建了一個對象,有說兩個,有說三個。 首先說三個的肯定是扯淡了,今天來討論一下這條語句到底創建了幾個對象。 在進入正題之前,先回顧一下幾個基礎知識。 常量池 常量

原创 多線程中ThreadLocal的使用

前言 多線程是Java的一個重要特性,多線程從某方面可以等價於多任務,當你有多個任務要處理時,多個任務一起做所消耗的時間肯定比任務串行起來做,所消耗的時間短。而對於多線程不熟悉的新手則容易踩到很多坑,最典型的則是變量問題。 概念介紹 下面

原创 Mybatis組成部分

從MyBatis代碼實現的角度來看,MyBatis的主要的核心部件有以下幾個: SqlSession:作爲MyBatis工作的主要頂層API,表示和數據庫交互的會話,完成必要數據庫增刪改查功能; Executor:MyBatis執

原创 前兩天看到的段子。

一個測試工程師走進一家酒吧,要了一杯啤酒; 一個測試工程師走進一家酒吧,要了一杯咖啡; 一個測試工程師走進一家酒吧,要了0.7杯啤酒; 一個測試工程師走進一家酒吧,要了-1杯啤酒; 一個測試工程師走進一家酒吧,要了2^32杯啤酒;

原创 不使用比較運算符如何比較兩個數的大小

前言 今天在水羣的過程中看到有位羣員談論到這個話題,是他找工作過程中某家公司的面試題(到底是哪家公司纔會出這種沒營養的題目刁難別人),有點興趣,就開始寫了。 開搞 想了一下,其實就是題目怪了一點,難度其實並不高。這個題目讓我想起了前兩年看