主要講解:execute方法的呼叫過程,
public static int execute(this idbconnection cnn, string sql, object param = null, idbtransaction transaction = null, int? commandtimeout = null, commandtype? commandtype = null)
此方法**:
內部呼叫了executeimpl方法
上圖,數字修正為陣列
下面講解executecommand方法
上面的**中一共出現兩個類identity(標識),cacheinfo(快取資訊)
先說identity這個類,是用來對commandtext,commandtype,cnn,param的乙個封裝,用於唯一標識這些物件。為快取機制,提供乙個唯一標識。
identity = new identity(command.commandtext, command.commandtype, cnn, null, param.gettype(), null);
那麼我們再來看這個類cacheinfo,用identity,param,bool引數來構造。
info = getcacheinfo(identity, param, command.addtocache);
下面看它的建構函式:
我們接下來,檢視步驟3中的圈著的方法,是用來生成乙個無返回值的委託,引數是icommand和object
Dapper原始碼拼接引數問題
線上分了n張表,多表查詢sql使用where in方法。容易丟擲引數已經定義的異常。例如 parameter sqlparams111 has already been defined.問題 例子 test 01表和test 11表只包含兩個欄位自增id和addtime try var ids2 n...
Spring原始碼講解
spring註解方式的refresh中beanfactory.preinstantiatesingletons 過程 spring如果解決迴圈依賴問題,如何使用 快取。beanfactory.preinstantiatesingletons 初始化和例項化操作 迴圈beandefinitionnam...
Vue 原始碼流程講解
模組分析vue原始碼,原始碼版本2.6.9 場景1 初始化vue例項,渲染到頁面,點選handlechangeweight方法 watch computed methods 1,data初始化,weight設定為響應式時,有乙個dep儲存依賴,在其他變數獲取當前weigth時,收集其他變數的watc...