天天看點

IBatis.Net DataMapper 1.6.2源碼解讀

  • 讀入sqlmap xml檔案,進行解析,分為動态(需要執行時才能決定sql及參數個數,隻要是有條件的,基本都是動态的)及靜态(已決定sql及參數)。
  • 按statement(包括statement,select,insert,update,delete)的id得到map表中的sql statement,如果是靜态的,直接得到preparedcommand進行執行,如果是動态的,必須按參數,生成sql及參數清單,這過程是一個遞歸生成的過程,其中,$xx$這個是動态的sql語句,#xx#是參數,最後,就可以prepare statement+參數,進行執行。
  • 靜态的statement效率高,不用中間的生成過程,動态的statement功能強,可以實作非常複雜的sql。