原创 mybatis-reflection反射包解析

反射包解析 概述 mybatis反射包,提供了反射相關的工具,爲啥要提供這些工具呢,java不是已經提供反射的功能了嗎? java反射雖然已經很強大,但是api偏底層,要想使用好可能會需要大量重複代碼,可能使用不當也會產生性能問題

原创 mybatis-binding 綁定包解析

概述 爲了實現直接調用Mapper接口類的方法,便達到調用sql的目標,mybatis-binding包提供了Mapper接口的代理類和其方法的代理類。主要起到連接 Mapper.java 和 Mapper.xml的作用。 方法映

原创 mybatis-初始化(三)statement解析

概述 Statement是我們平時sql的載體,一條sql代表一個Statement,來看下mybatis如何解析Statement。 接着上篇最後的入口 private void buildStatementFromContex

原创 mybatis-cache緩存包解析

概述 緩存包是mybatis對緩存的抽象和實現,可爲其他模塊提供緩存的支持。其設計也很值得借鑑。 大概分爲 緩存定義(抽象、異常、緩存鍵) 緩存實現 緩存裝飾者 可以重點在於緩存策略裝飾模式實現,可以複習複習裝飾模式啦。 C

原创 mybatis-初始化(二)映射文件解析

概述 mapper.xml是我們使用mybatis接觸最多的,需要編寫sql、ResultMap、ParameterMap等。且看如何解析xml,並註冊到Configuration中。 入口 接着上篇mybatis-confg解析

原创 mybatis-type 類型包解析

概述 類型包是mybatis提供類型轉換處理的包,mybatis提供了許多基本類型處理器的實現。在javaType和jdbcType之間轉換時所用到。 TypeHandler 本包的重點類,類型處理器 public interfa

原创 mybatis-executor解析

概述 執行器包主要包含了 Executor、ParameterHandler、ResultSetHandler、StatementHandler。 這些都是sql執行中非常重要的一環,本篇從Executor開始。 Executo

原创 mybatis-初始化(一)mybatis-confg解析

概述 mybatis初始化主要包含mybatis全局配置加載、解析,mapper文件加載解析。本篇主要是對mybatis配置文件解析進行解讀。 先看下mybatis-config.xml有些啥內容 configuration(配

原创 電商交易之訂單中心設計(二)

背景 上篇說過訂單基礎設計,介紹了訂單中心應該有哪些能力,大概有哪些字段,還有容量上的處理。上篇有點像在講訂單的數據模型,這篇來看看訂單的業務模型。   價格模型 訂單的價格怎麼計算得來?普通電商平臺用戶  實付 = 商品原價 * 商品數

原创 電商交易之訂單中心設計(一)

背景 在電商交易中臺團隊工作了一段時間,越發覺自己需要學習的東西還有很多,因此想要定期整理、反思一下所見、所想,因此先從接觸的訂單中心開始。 訂單是什麼,我所理解,訂單就是交易行爲的記錄。是用戶某一刻在平臺上購買的憑證,訂單當時對應的商品